2011-09-21 78 views
7

我想能够通过SQL使用CLR来运行.NET的DLL - 我这样做不成功。找不到非对称密钥 - 因为它不存在,或者您没有权限

我下面的说明here

所以我做了以下内容:

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

的正常工作和创建密钥,然后我尽量做到以下几点:

CREATE LOGIN SQLCLR_AsymKeyLogin FROM ASYMMETRIC KEY AKEY_SqlClr 

而我得到的错误:

Cannot find the asymmetric key 'AKEY_SqlClr', because it does not exist or you do not have permission.

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

+1

我对此的记忆有点朦胧......您是否在'master'数据库中创建它?确保在创建密钥前使用主设备。 – vcsjones

回答

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; 
相关问题