相关疑难解决方法(0)

了解 SQL Server 加密(通过密码)?

问完这个我还有一个问题。

公司需要存储敏感数据。请我们现在不要谈论证书。

一个DBA执行以下操作:

  CREATE SYMMETRIC KEY SecureSymmetricKey1 
  WITH ALGORITHM = DESX
  ENCRYPTION BY PASSWORD = N'blabla';
Run Code Online (Sandbox Code Playgroud)

一个程序员想要加密数据并执行以下操作:

  -- open key
  OPEN SYMMETRIC KEY SecureSymmetricKey1
  DECRYPTION BY PASSWORD = N'blabla'

  -- actual encrpyt
  DECLARE @encrypted_str VARBINARY(MAX)
  SET @encrypted_str =  EncryptByKey(Key_GUID('SecureSymmetricKey1'),'my data');
Run Code Online (Sandbox Code Playgroud)

另一个程序员想要读取数据,所以他这样做:

  DECLARE @decrypted_str VARBINARY(MAX)
  SET @decrypted_str = DecryptByKey(...encrypted_str...) 
Run Code Online (Sandbox Code Playgroud)

一切都很好。

问题 :

  1. 当程序员打开对称密钥时,他必须知道密码。我不认为程序员应该知道密码。如何解决?

  2. 如果一个 GOD 黑客得到了整个.BAK文件并将备份恢复到他自己的机器上 - 他可以查看其中一个程序员编写的存储过程源,并查看密码。然后黑客可以做:

    开放对称密钥 SecureSymmetricKey1 密码解密 = N'blabla'

我错过了什么?

谢谢你的帮助。

sql-server-2008 security sql-server

4
推荐指数
1
解决办法
1650
查看次数

标签 统计

security ×1

sql-server ×1

sql-server-2008 ×1