下面是个简单易学的SQL Server 2008中的代码安全(八)透明加密(TDE)教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!
【 tulaoshi.com - 编程语言 】
当一个用户数据库可用且已启用TDE时,在写入到磁盘时在页级实现加密。在数据页读入内存时解密。如果数据库文件或数据库备份被盗,没有用来加密的原始证书将无法访问。这几乎是SQL Server2008安全选项中最激动人心的功能了,有了它,我们至少可以将一些初级的恶意窥视拒之见外。示例一、启用透明加密(TDE)
/********************TDE**************** 3w@live.cn ****************/
注意:一旦在数据库应用了加密,应该立刻备份服务器级证书!
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)没有加密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的处理 
databasenm encryption_state key_algorithm key_length 
tempdb Encrypted AES 256 
DB_Encrypt_Demo Encrypted AES 128 
*/ 
 
注意:对所有用户数据库的加密处理也包含对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 
来源:http://www.tulaoshi.com/n/20160219/1595797.html
看过《SQL Server 2008中的代码安全(八)透明加密(TDE)》的人还看了以下文章 更多>>