我的用户数据库中有一些我希望进行加密的数据。要求时,大多数数据将需要解密,但是也有一些密码可以保持加密(过去我们会使用 pwdcompare, 但我相信现在已经过时了)。
我已经按照这里的步骤进行操作,所以现在我已经成功地加密了我的数据。
我不了解的是在运行时打开主密钥以加密/解密数据的正确方法。如果我想使用存储过程来检索加密的数据,该如何打开主密钥?我是否使用存储的proc参数传递主密钥的密码?
据我了解,您应该一次创建主密钥(您可以在安装过程中执行此操作),这是第一次也是最后一次需要密码。之后,使用主密钥创建 不带密码的 加密密钥(对称或非对称) , 然后使用它来加密/解密您的数据。您不必为此输入密码,只需使用加密密钥并拥有CONTROL权限。唯一的问题是您的DBA也可以使用它:)
请参阅本文:在SQL Server2005数据库中使用非对称加密和数字签名