找不到非对称密钥 - 因为它不存在或者您没有权限

时间:2011-09-21 16:52:47

标签: .net sql sql-server clr sqlclr

我试图能够使用CLR通过SQL运行.Net dll - 我这样做是不成功的。

我按照说明here

所以我正在做以下事情:

CREATE ASYMMETRIC KEY AKEY_SqlClr FROM EXECUTABLE FILE = 'C:\dlls\mySqlClr.dll'

哪个工作正常并创建密钥,然后我尝试执行以下操作:

CREATE LOGIN SQLCLR_AsymKeyLogin FROM ASYMMETRIC KEY AKEY_SqlClr

我收到错误:

  

找不到非对称密钥'AKEY_SqlClr',因为它不存在或您没有权限。

我怎么可能没有这个权限?我已经验证我有CREATE LOGIN权限。有什么想法吗?

1 个答案:

答案 0 :(得分:9)

登录是服务器主体,因此无法从存储在用户数据库中的密钥创建。您必须在master数据库中的程序集中创建密钥:

use master;
CREATE ASYMMETRIC KEY AKEY_SqlClr FROM EXECUTABLE FILE = 'C:\dlls\mySqlClr.dll';
CREATE LOGIN SQLCLR_AsymKeyLogin FROM ASYMMETRIC KEY AKEY_SqlClr;