END encryption_state, key_algorithm, key_length
FROM sys.dm_database_encryption_keys
/*
对所有用户数据库的加密处理也包含对tempdb的处理 ,因为表连接,临时表都要用到tempdb
databasenm encryption_state key_algorithm key_length
tempdb Encrypted AES 256
DB_Encrypt_Demo Encrypted AES 128
*/
–除了更改dek的算法,我们也可以更改用来加密数据库的服务器级证书(该证书应该定期更改)
USE master
GO
CREATE CERTIFICATE TDE_Server_Certificate_V2
WITH SUBJECT = ‘Server-level cert for TDE V2’
GO
USE [pratice]
GO
ALTER DATABASE ENCRYPTION KEY
ENCRYPTION BY SERVER CERTIFICATE TDE_Server_Certificate_V2
–用新证书修改DEK
–移除数据库透明加密
ALTER DATABASE [pratice]
SET ENCRYPTION OFF
GO
–移除TDE后,可以删除DEK
USE [pratice]
GO
DROP DATABASE ENCRYPTION KEY
Go
–注意:如果删除DEK是SQL Server实例中最后一个使用TDE的用户定义数据库,
–在SQL Server实例重启后,tempdb也将变为不加密的状态。
—
–小结:
—
–1、本文主要介绍透明数据加密(TDE)的使用。
—
–2、对DEK的修改同时影响到tempdb数据库的加密状态。
————————————————————————————————
–SQLServer 2008中的代码安全(七) 证书加密
—
–证书可以在数据库中加密和解密数据。
–证书包含密钥对、关于证书拥有者的信息、证书可用的开始和结束过期日期。
—
–证书同时包含公钥和密钥,前者用来加密,后者解密。SQL Server可以生成它自己的证书,
–也可以从外部文件或程序集载入。因为可以备份然后从文件中载入它们,证书比非对称密钥更易于移植,
–而非对称密钥却做不到。这意味着可以在数据库中方便地重用同一个证书。
–注意:证书和非对称密钥同样的消耗资源。
–我们看一组例子:
—
–示例一、创建数据库证书
–创建数据库证书:CREATE SYMMETRIC KEY (http://msdn.microsoft.com/en-us/library/ms187798.aspx)
USE [pratice]
GO
–创建证书
CREATE CERTIFICATE cert_Demo –证书名称
ENCRYPTION BY PASSWORD = ‘123!!!’ –加密证书的密码
WITH SUBJECT = ‘DB_Encrypt_Demo Database Encryption Certificate’,–证书主题
START_DATE = ‘3/14/2012′, EXPIRY_DATE = ’10/20/2016’–起止日期
GO
–示例二、查看数据库中的证书










