早上执行加密的存储过程出现下面的错误:
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 TOUser1;
GO
--对Key需要REFERENCES权限
GRANT REFERENCES ON SYMMETRIC KEY::PoolKey TO User1;
GO
执行上面的代码问题解决。