老板又有命令了,要求我们的数据库进行加密,有把这个任务交给了数据库,没有办法,数据库DBA的辛苦就在这里了,以前对数据库加密有一定了解,但是不深入,从设置栏位加密和TDE的步骤只会照抄MSDN或网络上的,通过两天的研究和学习,自认为有了比较深刻的认识。
关于栏位加密的可以参考微软的MSDN写的非常不错:http://msdn.microsoft.com/en-us/library/ms189586(v=sql.105).aspx
关于TDE加密的步骤可以参考:http://msdn.microsoft.com/en-us/library/bb934049(d=printer,v=sql.105).aspx
这里不多说了,我要说的是证书,对称性和非对称性密钥的本身:
--备份证书
BACKUP CERTIFICATE master_database_cert TO FILE = 'D:\master_database_cert_20121226.cer'
WITH PRIVATE KEY (
FILE = 'D:\master_Database_priv_201212261431.pvk' ,
ENCRYPTION BY PASSWORD = 'Gaupeng123' );
--恢复证书
CREATE CERTIFICATE master_server_cert
FROM FILE = 'D:\GWSZAPP03_Cert\master_database_cert_20121226.cer'
WITH PRIVATE KEY (FILE = 'D:\GWSZAPP03_Cert\master_Database_priv_201212261431.pvk',
DECRYPTION BY PASSWORD = 'Gaupeng123');
5. 对于对称性密钥,设置其中的参数,也可以实现不同实体间的证书复制。
通过 KEY_SOURCE/IDENTITY_VALUE 参数来实现。
--建立对称性密钥
CREATE SYMMETRIC KEY [key_DataShare] WITH
KEY_SOURCE = 'My key generation bits. This is a shared secret!',
ALGORITHM = AES_256,
IDENTITY_VALUE = 'Key Identity generation bits. Also a shared secret'
ENCRYPTION BY CERTIFICATE [cert_keyProtection];
--在另外的数据库中生成对称性密钥
CREATE SYMMETRIC KEY [key_DataShare001] WITH
KEY_SOURCE = 'My key generation bits. This is a shared secret!',
ALGORITHM = AES_256,
IDENTITY_VALUE = 'Key Identity generation bits. Also a shared secret'
ENCRYPTION BY CERTIFICATE [cert_keyProtection001];
--一下是查询的结果,发现两个对称密钥相同。
以上是我仓促总结出来的,还希望大家多多指教。