在MSSQL中处理加密数据的最佳实践

时间:2009-02-11 02:20:42

标签: sql sql-server sql-server-2005 sql-server-2008 encryption

我的用户数据库中有一些我希望加密的数据。大多数数据需要在请求时解密,但也有密码可以加密(过去我们会使用 pwdcompare 但我相信现在已经过时了。)

我已按照here步骤操作,因此我现已成功加密了数据。

我不明白的是在运行时打开主密钥的正确方法,以加密/解密数据。如果我想使用存储过程来检索加密数据,我该如何打开主密钥?我是否使用存储的proc参数传递主密钥的密码?

1 个答案:

答案 0 :(得分:1)

据我所知,您应该创建一次主密钥(您可以在安装过程中执行此操作),这是第一次也是最后一次需要密码。之后,使用主密钥创建加密密钥(对称或非对称)无密码,并使用它来加密/解密您的数据。您无需为其提供密码,您只需使用加密密钥并拥有CONTROL权限即可。唯一的问题是你的DBA也可以拥有它:)

请参阅此文章:Using Asymmetric Encryption and Digital Signatures in a SQL Server 2005 Database