我试图能够使用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权限。有什么想法吗?
答案 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;