Sql server 2008 无法以SQL用户帐户身份通过证书打开对称密钥

Sql server 2008 无法以SQL用户帐户身份通过证书打开对称密钥,sql-server-2008,encryption,certificate,Sql Server 2008,Encryption,Certificate,我使用如下证书创建密钥: 创建对称密钥一些密钥\u 01 算法=AES_256 证书加密 转到 将CERTIFICATE::myCert上的视图定义授予sqlUser 转到 将对称密钥的视图定义::some_KEY_01授予sqlUser 转到 然后我试着打开它,像这样告诉我们: 打开对称密钥一些密钥\u 01 通过证书myCert进行解密 去 选择CONVERT(datetime,DecryptByKey(EncryptedField)) 作为“DecryptedField” 从MyTable

我使用如下证书创建密钥:

创建对称密钥一些密钥\u 01
算法=AES_256
证书加密
转到

将CERTIFICATE::myCert上的视图定义授予sqlUser
转到

将对称密钥的视图定义::some_KEY_01授予sqlUser
转到

然后我试着打开它,像这样告诉我们:

打开对称密钥一些密钥\u 01
通过证书myCert进行解密

选择CONVERT(datetime,DecryptByKey(EncryptedField))
作为“DecryptedField”
从MyTable
转到

但我得到的信息是:
Msg 15151,16级,状态1,第23行

找不到证书“myCert”,因为它不存在或您没有权限。

您需要对证书拥有
控件
权限:

GRANT CONTROL ON CERTIFICATE::myCert TO sqlUser;
GO
并授予对密钥的
引用
权限:

GRANT REFERENCES ON SYMMETRIC KEY::some_Key_01 TO sqlUser;
GO

谢谢介意我问一下,为什么钥匙上有参考资料?为什么不只是查看定义?还有,为什么要控制,而不是证书上的某些权限子集?