早上执行加密的存储过程出现下面的错误:
Msg 15151, Level 16, State 1, Line 23
Cannot find the certificate 'EncryptCert', because it does not exist or you donot have permission.
查了一下发现访问的账户只是赋予了执行存储过程的权限,如果不是用加密是没有问题。网上查了一下,需要对证书和Key单独加权限.
代码如下:
--需要对证书有Control权限
GRANT CONTROL ON CERTIFICATE::EncryptCert TO User1;
GO
--对Key需要REFERENCES权限
GRANT REFERENCES ON SYMMETRICKEY::PoolKey TO User1;
GO
执行上面的代码问题解决。
本文转自 lzf328 51CTO博客,原文链接:
http://blog.51cto.com/lzf328/1331607