欢迎来到天天文库
浏览记录
ID:10122999
大小:64.50 KB
页数:3页
时间:2018-06-11
《透明数据加密sql2008》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、查看文章 透明数据加密sql2008(转)2010-08-2823:05透明数据加密(TransparentDataEncryption,TDE)是SQLServer2008支持的一项新功能。它允许通过加密数据库文件和事务日志页实现对整个数据库的加密。使用这一加密选项不需要对数据库现有的应用程序做任何修改,同时它也不会影响数据库的大小。需要加/解密页,使用TDE必然会增加数据库自身的运行开销。TDE使用数据库加密密钥进行加/解密。千万不要将数据库加密密钥与数据库主密钥相混淆。数据库加密密钥只用于TDE,并且是由某个证书或存储在master数据
2、库中的非对称密钥保护的(如图13-2所示)。数据库主密钥用于保护证书和数据库中的非对称密钥,除了在master数据库中,一般不会直接用于TDE。图13-2透明数据加密的体系结构使用TDE备份的数据库使用数据库加密密钥进行加密。为了还原该备份,必须首先掌握用于加密数据库加密密钥的证书或非对称密钥。当某个数据库使用TDE加密时,也会加密tempdb系统数据库。这会为同一台服务器上另外一些需要用到tempdb的数据库带来额外的开销。为了使用TDE,必须满足以下条件:数据没有被标记为只读;不存在标记为只读的文件组;没有正在处理的备份或快照;当前未执行
3、任何ALTERDATABASE语句。创建密钥和证书为了使用TDE,首先需要创建一些密钥,包括:用于master数据库的数据库主密钥;master数据库中的证书或非对称密钥;数据库加密密钥。数据库加密密钥使用证书或非对称密钥进行保护。除非使用了某个EKM提供程序用于非对称密钥的管理,否则通常推荐使用证书。原因很简单,证书能够被独立备份。证书和非对称密钥都需要存储于master数据库,并由数据库主密钥进行加密,从而保证SQLServer服务能够自动对其进行解密。在下面的例子中,假设已经创建了一个名为TDEDemo的数据库。为了实现TDE,需要进行
4、如下的操作:(1)在master数据库中创建一个主密钥--如果还未创建的话。通过查询sys.symmetric_keys系统视图可以验证是否存在主密钥。1.USEMaster2.GO3.CREATEMASTERKEY 4.ENCRYPTIONBYPASSWORD='StrongPassw0rd';(2)在master数据库中创建一个证书或非对称密钥,用于加密数据库加密密钥。为了使用TDE,该证书或非对称密钥必须使用数据库主密钥进行加密,而不是使用密码。1.CREATECERTIFICATEcert_TDEDemoEncryption2.W
5、ITHSUBJECT='CertificatetoencrypttheTDEDemodatabase';(3)创建一个数据库加密密钥,并用此前创建的证书或非对称密钥加密。1.USETDEDemo;2.GO3.CREATEDATABASEENCRYPTIONKEY 4.WITHALGORITHM=AES_256 5.ENCRYPTIONBYSERVERCERTIFICATEcert_TDEDemoEncryption;(4)在数据库选项中启用TDE。1.ALTERDATABASETDEDemoSETENCRYPTIONON;(5)查询sys
6、.dm_database_encryption_keys动态管理视图来查看加密状态。encryption_state列指示了数据库的加密状态。encryption_state列的可能取值如表13-2所示。表13-2encryption_state列的取值值描述0没有数据库加密密钥,未加密1未加密2正在加密3已加密4正在更改密钥5正在解密一定要记住,备份用于保护数据库加密密钥的证书或非对称密钥。为了还原数据库,必须保证该证书的可用。
此文档下载收益归作者所有