2013-10-15 45 views
-1

我想要做列级加密。例如:列级加密备份

--Create Master Key 
USE EncryptTest 
GO 
CREATE MASTER KEY ENCRYPTION 
BY PASSWORD = 'Test' 
GO 

--Create Server Cert 
USE EncryptTest 
GO 
CREATE CERTIFICATE EncryptTestCert 
WITH SUBJECT = 'Test' 
GO 

/* Create Symmetric Key */ 
USE EncryptTest 
GO 
CREATE SYMMETRIC KEY TestTableKey 
WITH ALGORITHM = TRIPLE_DES ENCRYPTION 
BY CERTIFICATE EncryptTestCert 
GO 
/* Encrypt the Column.*/ 
USE EncryptTest 
GO 
OPEN SYMMETRIC KEY TestTableKey DECRYPTION 
BY CERTIFICATE EncryptTestCert 
UPDATE TestTable 
SET EncryptSecondCol = ENCRYPTBYKEY(KEY_GUID('TestTableKey'),SecondCol) 
GO 

--View encrypted 
USE EncryptTest 
GO 
SELECT * 
FROM TestTable 
GO 

但是我的问题是如何备份证书或密钥?该场景是DBA(当然不是我)意外删除了证书/密钥,使数据库安全,但没用。我提出这个问题是因为我看到更多的实际问题出现在有人用胖手指漏掉安全性,然后实际存在安全漏洞的情况下。

+0

的downvote是正确的 - 我应该做更多这方面的研究,然后再发布:只要我做了,我发现下面的链接。 –

回答