查看文章透明数据加密sql2008(转)2010-08-2823:05透明数据加密(TransparentDataEncryption,TDE)是SQLServer2008支持的一项新功能
它允许通过加密数据库文件和事务日志页实现对整个数据库的加密
使用这一加密选项不需要对数据库现有的应用程序做任何修改,同时它也不会影响数据库的大小
需要加/解密页,使用TDE必然会增加数据库自身的运行开销
TDE使用数据库加密密钥进行加/解密
千万不要将数据库加密密钥与数据库主密钥相混淆
数据库加密密钥只用于TDE,并且是由某个证书或存储在master数据库中的非对称密钥保护的(如图13-2所示)
数据库主密钥用于保护证书和数据库中的非对称密钥,除了在master数据库中,一般不会直接用于TDE
图13-2透明数据加密的体系结构使用TDE备份的数据库使用数据库加密密钥进行加密
为了还原该备份,必须首先掌握用于加密数据库加密密钥的证书或非对称密钥
当某个数据库使用TDE加密时,也会加密tempdb系统数据库
这会为同一台服务器上另外一些需要用到tempdb的数据库带来额外的开销
为了使用TDE,必须满足以下条件:数据没有被标记为只读;不存在标记为只读的文件组;没有正在处理的备份或快照;当前未执行任何ALTERDATABASE语句
创建密钥和证书为了使用TDE,首先需要创建一些密钥,包括:用于master数据库的数据库主密钥;master数据库中的证书或非对称密钥;数据库加密密钥
数据库加密密钥使用证书或非对称密钥进行保护
除非使用了某个EKM提供程序用于非对称密钥的管理,否则通常推荐使用证书
原因很简单,证书能够被独立备份
证书和非对称密钥都需要存储于master数据库,并由数据库主密钥进行加密,从而保证SQLServer服务能够自动对其进行解密
在下面的例子中,假设已经创建了一个名为TDE