使用 SQL 2005
我创建了一个通过密码加密的主 key ,然后使用服务主 key 加密了主 key
然后,我创建了一个 ASYMMETRIC_KEY,用它来加密我的 SYMMETRIC_KEY。我使用 SQL 的 SA 用户完成了这一切,并以域管理员身份登录到 Windows 服务器。
我的数据库中有一个用户对我的数据库仅具有 dbo 权限,然后我授予该用户对所有必要的存储过程的执行权限,并且我还拒绝对这些相同的存储过程进行 View 定义。
在我进行加密时给我带来麻烦的存储过程就是这里。此外,这一切都在我的测试电脑上的 SQL2012 上运行,但现在我正在使用 sql 2005 在生产服务器上创建它,但它失败了
open symmetric key
MYKEY_NAME_SYM decryption by Asymmetric key MYKEY_NAME_ASYM
set @ENCRYPTVARIABLE = (select ENCRYPTBYKEY(KEY_GUID('MYKEY_NAME_SYM'), @ENCRYPTCOLUMN))
close symmetric key MYKEY_NAME_SYM
我收到的错误是:
Cannot find the symmetric key 'MKEY_NAME_SYM', because it does not exist or you do not have permission.
所以我猜测我在数据库中使用的用户没有权限,但是当我尝试授予权限时
GRANT
VIEW DEFINITION ON SYMMETRIC KEY::MKEY_NAME_SYM TO [myuser]
我收到同样的错误,找不到对称 key 或我没有权限。
最佳答案
使用管理用户在脚本控制台中写入:
--Grant View GRANT VIEW DEFINITION ON CERTIFICATE::[Certificate_Name] TO [user] GRANT VIEW DEFINITION ON SYMMETRIC KEY::[EncryptionKey_Name] TO [user] --Grant Control GRANT CONTROL ON CERTIFICATE::[Certificate_Name] TO [user]
关于sql - 找不到对称 key '' ,因为它不存在或您没有权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19006587/