栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 数据库 > SQL Server

SQL Server 2008中的代码安全(八)透明加密(TDE)

SQL Server 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQL Server 2008中的代码安全(八)透明加密(TDE)

当一个用户数据库可用且已启用TDE时,在写入到磁盘时在页级实现加密。在数据页读入内存时解密。如果数据库文件或数据库备份被盗,没有用来加密的原始证书将无法访问。这几乎是SQL Server2008安全选项中最激动人心的功能了,有了它,我们至少可以将一些初级的恶意窥视拒之见外。
下面的两个例子将展示如何启用和维护透明数据加密。

示例一、启用透明加密(TDE)


USE Master
GO
--------删除旧主密钥**********************3w@live.cn
--------Drop master Key
--------go
--创建主密钥**********************3w@live.cn
Create MASTER KEY ENCRYPTION
BY PASSWORD = 'B19ACE32-AB68-4589-81AE-010E9092FC6B'
GO
--创建证书,用于透明数据加密**********************3w@live.cn
CREATE CERTIFICATE TDE_Server_Certificate
WITH SUBJECT = 'Server-level cert for TDE'
GO

USE DB_Encrypt_Demo
GO
--第一步:现在开始透明加密**********************3w@live.cn
CREATE DATAbase ENCRYPTION KEY--创建数据库加密密钥
WITH ALGORITHM = TRIPLE_DES_3KEY--加密方式
ENCRYPTION BY SERVER CERTIFICATE TDE_Server_Certificate--使用服务器级证书加密
GO


--第二步:打开加密开关**********************3w@live.cn
ALTER DATAbase DB_Encrypt_Demo
SET ENCRYPTION ON
GO

--查看数据库是否加密
SELECT is_encrypted
FROM sys.databases
WHERe name = 'DB_Encrypt_Demo'

注意:一旦在数据库应用了加密,应该立刻备份服务器级证书!

没有加密DEK的证书,该数据库将无法打开,附加到别的服务器也无法使用,数据库文件亦不会被Hack。如果一个DBA想要合法地将数据库从一个SQL Server实例移动到另一个SQL Server实例,那么她应该首先备份服务器级证书,然后在新的SQL Server实例中创建证书。此时可以合法地备份、还原数据库或附加数据及日志文件。


示例二、管理和移除透明加密(TDE)
复制代码 代码如下:
USE DB_Encrypt_Demo
GO
--修改加密算法
ALTER DATAbase ENCRYPTION KEY
REGENERATE WITH ALGORITHM = AES_128
Go

SELECt DB_NAME(database_id) databasenm,
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 encryption_state,
key_algorithm,
key_length
FROM sys.dm_database_encryption_keys



注意:对所有用户数据库的加密处理也包含对tempdb的处理

除了更改DEK的算法,我们也可以更改用来加密DEK的服务器级证书(该证书应该定期更改)
复制代码 代码如下:
USE master
GO
CREATE CERTIFICATE TDE_Server_Certificate_V2
WITH SUBJECT = 'Server-level cert for TDE V2'
GO
USE DB_Encrypt_Demo
GO
ALTER DATAbase ENCRYPTION KEY
ENCRYPTION BY SERVER CERTIFICATE TDE_Server_Certificate_V2--用新证书修改DEK

--移除数据库透明加密
ALTER DATAbase DB_Encrypt_Demo
SET ENCRYPTION OFF
GO

--移除TDE后,可以删除DEK
USE DB_Encrypt_Demo
GO
Drop DATAbase ENCRYPTION KEY
Go

注意:如果删除DEK是SQL Server实例中最后一个使用TDE的用户定义数据库,在SQL Server实例重启后,tempdb也将变为不加密的状态。

小结:

1、本文主要介绍透明数据加密(TDE)的使用。

2、对DEK的修改同时影响到tempdb数据库的加密状态。

SQL Server安全系列至此暂告一段落。谢谢各位耐心看完,欢迎对邀月提出指正。3w@live.cn

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/172475.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号