新年快乐,狗年旺旺!--做一根看不见摸得着的绳子,拴住旺旺~~

标签:SQLServer 备份 加密


各位新年好,戊戌年正月初一,老白在此给大家拜年了,祝各位新年快乐,身体健康,阖家幸福,万事顺利!
近期我在研究一些除了SQL SERVER以外的东西,容我卖个关子,后续也许有机会,也会在这里和大家见面.

好了,我们接着讲数据库,在今天的话题前,我们先看下DBA的工作核心内容:安全,稳定,高效;
这三点是刚入门的时候,我的授业恩师千叮咛万嘱咐的.也是指导我这么多年DBA之路的行动准则.
并且,这三者是顺序是不可以变换的,安全永远是第一位,如果有发现无法决定方案的时候,按照此核心原则来排序找出核心重点.

今天的讲的核心内容也就是和安全有关的:备份透明加密
上两期中我们讲了备份快照,其中快照是需要SQL SERVER服务的支持才能使用,并且权限依赖于原库的权限(数据库权限管理部分我们后续再进行扩展),因此如果数据库权限控制得当,数据泄露的风险是很小的;
但是对于备份来讲就不一样了,一般情况下,数据库对于磁盘的IO要求是较高的,因此,活动的数据文件和日志文件都尽可能的存放在高性能的磁盘上(如15K SATA盘SSD盘甚至PCIE SSD盘),但备份使用率极低,就不适合存放在数据库服务器上,为了提高ROI(投入产出比),很多时候备份是存放在远端专用的备份服务器上,使用7.2K磁盘或者5.4K磁盘进行存储.
相对而言,备份服务器的使用率较低,因此被入侵后发现的几率会降低,这样的情况下,如果备份服务器被入侵后,备份将极有可能被拖走(也就是大家经常遇到的拖库,当然还有其他的拖库方式,原理上也不一样,这里不做展开),获取到备份后,不需要数据库服务器的任何权限就能获取到完整数据(获取方式:复制备份文件-->找到同样版本或更高版本的数据库服务-->恢复备份文件),这样一来,数据安全性就降低了.
鉴于此,为了保护备份文件,即使备份文件被拿走数据也不会泄露,SQL SERVER2008开始提供了数据库透明加密的办法来保护数据库文件,避免未经许可的恢复或附加导致数据泄露.
这就是我们今天要介绍的看不见摸得着的安全绳.

参考网址: https://technet.microsoft.com/zh-CN/library/bb934049(v=sql.120).aspx

下面给出相关的实施步骤,测试过程和注意点:

一. 数据库支持版本
数据库版本需要在SQL Server 2008以上

二. 创建透明加密操作步骤

1.创建主密钥和透明数据加密证书
执行下述脚本:

/************************TDE*************/
USE Master
GO
--------删除旧主密码
--------DROP MASTER KEY 
--------GO
--创建主密钥
Create MASTER KEY ENCRYPTION
BY PASSWORD = 'abcdefghijklmnopqrstuvwxy'--此处密码一定要记牢!!!!!!一定要记牢!!!!!!!一定要记牢!!!!!!
GO
--创建证书,用于透明数据加密************
USE Master
GO
CREATE CERTIFICATE TDE_Server_Cretificate--注意此处服务器级证书名称!!!下面好几处需要使用
WITH SUBJECT = 'Server-level cert for TDE'
GO

注:密码一定要注意保存,不可忘记!!!!

2.备份透明加密证书
透明加密证书新建后必须备份并妥善保存,否则将会导致加密数据无法恢复.
执行下述脚本:

USE Master
GO
BACKUP CERTIFICATE TDE_Server_Certificate--注意此处服务器级证书名称!!!
TO FILE = 'D:\certbak\###ServerNameCertbak_20180215###.crt'--文件保存好
WITH PRIVATE KEY
(
    FILE = 'D:\certbak\###ServerNameCertbak_20180215###.key',--文件保存好
    ENCRYPTION BY PASSWORD = 'abcdefghijklmnopqrstuvwxy'--此处密码一定要记牢!!!!!!一定要记牢!!!!!!!一定要记牢!!!!!!
);

注:证书的文件名和KEY的文件名不一样,需要特别注意.
证书加密的密码也要注意保存,证书的密码可以与主加密密码不一样,也可以一样,从安全性角度考虑,建议不一样,单独保存.

3.给数据库设置透明加密
执行下述脚本:

USE ###DataBaseName###
GO
--第一步,现在开始透明加密
CREATE DATABASE ENCRYPTION KEY--创建数据库加密密钥
WITH ALGORITHM = TRIPLE_DES_3KEY--加密方式
ENCRYPTION BY SERVER CERTIFICATE TDE_Server_Certificate--使用服务器级证书加密
GO

--第二步:打开加密开关
ALTER DATABASE ###DataBaseName###
SET ENCRYPTION ON
GO

注:修改需要加密的数据库名即可,如有多个库,重复本步骤.

4.查看数据库是否加密
执行下述脚本:

--查看数据库是否加密
USE Master
GO
SELECT name,is_encrypted FROM sys.databases
GO
SELECT DB_NAME(database_id) as DBName,
CASE encryption_state 
when 0 then 'No Encryption'
when 1 then 'Unencrypted'
when 2 then 'Encryption in progress'
when 3 then 'Encrypted'
when 4 then 'Key change in progress'
when 5 then 'Decryption in progress'
end as encryption_state,
key_algorithm,
key_length
FROM sys.dm_database_encryption_keys
GO

能够得到如下信息:
第一个SQL结果:


05.png

第二个SQL结果:


06.jpg

结果显示状态为数据库正在进行加密
但加密完成后,状态将变为:


07.png

加密的耗时取决于被加密数据库的大小.

三. 去除数据库透明加密
当数据库需要升级或迁移时,可以采用先去除透明加密,然后迁移文件后附加的方式进行迁移,或采用备份恢复的方式进行迁移.这时候就需要先去除数据库透明加密,然后进行迁移操作,迁移完成后再重新添加透明加密.
1.关闭加密

--移除数据库透明加密
ALTER DATABASE ###DataBaseName###
SET ENCRYPTION OFF 
GO 

2.删除数据库加密密钥
但解密完成后接可以删除加密密钥了

--移除TDE后,可以删除DEK(DATABASE ENCRYPTION KEY)
USE ###DataBaseName###
GO
DROP DATABASE ENCRYPTION KEY
GO

完成后执行检查脚本可以看到数据库已经没有加密


10.png

四. 迁移到新的服务器启用加密数据库

1.在新的服务器上导入备份的key和证书

USE Master
GO
--------删除旧主密码
--------DROP MASTER KEY 
--------GO
--创建主密钥
Create MASTER KEY ENCRYPTION
BY PASSWORD = 'abcdefghijklmnopqrstuvwxy'--此处密码与源服务器上主加密密码一致!!!
GO
--导入源服务器证书文件和密钥文件
CREATE CERTIFICATE TDC_Server_Certificate--注意此处服务器级证书名称!!!需要与源服务器证书名称一致
    FROM FILE = 'D:\certbak\###ServerNameCertbak_20180215###.crt'--此处文件必须为源服务器备份出来的证书文件!!!
WITH PRIVATE KEY
(
    FILE = 'D:\certbak\###ServerNameCertbak_20180215###.key',--此处文件必须为源服务器备份出来的密钥文件!!!
    DECRYPTION BY PASSWORD = 'abcdefghijklmnopqrstuvwxy'--此处密码为备份文件密码,非主密码!!!!!
);
GO

注:密码和新建的时候的密码需要一致,证书文件和KEY文件使用之前备份的,不能有误,否则无法恢复加密数据库使用.
如恢复证书有问题,将在附加或恢复数据库时出现如下报错:


12.png

2.恢复或附加加密的数据库
如未恢复所需证书,执行还原数据库命令将出现如下错误:


13.png

如果证书恢复正确,将能够正常恢复:


14.jpg

五.方案实施注意点:
实施过程中的密码及证书备份文件和KEY备份文件必须妥善保存.
采用文档记录相应密码,并标明所在服务器IP和对应的数据库实例名
采用文档记录证书备份文件路径和KEY备份文件路径,建议异地存放,并存放多份,防止文件灭失.

好啦,既然叫透明,那么就是说明这个加密对于使用数据库的人来说是无感的.所以,这根隐形而真实存在的安全绳能够保证数据的更高层的安全性喔.快来试试吧~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,598评论 18 139
  • 背景: 阅读新闻 12C CDB模式下RMAN备份与恢复 [日期:2016-11-29] 来源:Linux社区 作...
    阳屯okyepd阅读 3,335评论 0 7
  • 需要原文的可以留下邮箱我给你发,这里的文章少了很多图,懒得网上粘啦 1数据库基础 1.1数据库定义 1)数据库(D...
    极简纯粹_阅读 7,399评论 0 46
  • 梦想这东西和经典一样,永远不会因为时间而褪色,反而更显珍贵。 — — —早安!
    地狱书生Jason_e73b阅读 124评论 0 0
  • 如果让孩子们评选“十大最痛苦时刻”,那打针一定名列前三!别说孩子,有些大人现在面对拿着针筒的护士也有些打怵。但许多...
    孤独症康复阅读 749评论 0 0