SQL 服务器证书和对称密钥

SQL Server certificate and symmetric key

我需要 encrypt/decrypt 我的数据库中的一些个人信息,例如信用卡号和密码。

按照 Microsoft 的步骤,我成功地加密和解密了数据。

但经过一些测试后我有疑问。

假设有人未经授权访问数据库(黑客攻击),并且可以从他自己的计算机上查看 SSMS 中的数据库。 Surly 他可以看到我有一些证书和对称密钥设置。

为了显示数据,示例显示了以下查询

OPEN symmetric KEY symmetrickey1 
decryption BY certificate certificate1
Now list the original ID, the encrypted ID  
SELECT customer_id, 
   credit_card_number_encrypt                                 AS 
   'Encrypted Credit Card Number', 
   CONVERT(VARCHAR, Decryptbykey(credit_card_number_encrypt)) AS 
   'Decrypted Credit Card Number' 
FROM   dbo.customer_data; 
-- Close the symmetric key 
CLOSE symmetric KEY symmetrickey1; 

如果上面查询到returns的数据,可以看到信用卡怎么保护呢?难道不需要在查询中的某处传递密码吗?

我确定我在这里错过了什么。谁能给我解释一下?

我必须在证书中包含一个密码

CREATE CERTIFICATE Certificate1
Encryption By Password='Password123'
WITH SUBJECT = 'Protect Data'

用于检索数据

OPEN Symmetric KEY SymmetricKey1
DECRYPTION BY CERTIFICATE Certificate1 With Password='Password123'
;
select *,CONVERT(nvarchar(255),DECRYPTBYKEY(Credit_Card_No)) as
[Credit_Card_No3] from Customers
;
Close Symmetric Key SymmetricKey1