.net 找不到非对称密钥--因为它不存在或您没有权限
我正在尝试使用CLR通过SQL运行.Net dll,但没有成功 我按照指示去做 因此,我正在做以下工作:.net 找不到非对称密钥--因为它不存在或您没有权限,.net,sql,sql-server,clr,sqlclr,.net,Sql,Sql Server,Clr,Sqlclr,我正在尝试使用CLR通过SQL运行.Net dll,但没有成功 我按照指示去做 因此,我正在做以下工作: CREATE ASYMMETRIC KEY AKEY_SqlClr FROM EXECUTABLE FILE = 'C:\dlls\mySqlClr.dll' CREATE LOGIN SQLCLR_AsymKeyLogin FROM ASYMMETRIC KEY AKEY_SqlClr 这可以很好地工作并创建关键点,然后我尝试执行以下操作: CREATE ASYMMETRIC KEY
CREATE ASYMMETRIC KEY AKEY_SqlClr FROM EXECUTABLE FILE = 'C:\dlls\mySqlClr.dll'
CREATE LOGIN SQLCLR_AsymKeyLogin FROM ASYMMETRIC KEY AKEY_SqlClr
这可以很好地工作并创建关键点,然后我尝试执行以下操作:
CREATE ASYMMETRIC KEY AKEY_SqlClr FROM EXECUTABLE FILE = 'C:\dlls\mySqlClr.dll'
CREATE LOGIN SQLCLR_AsymKeyLogin FROM ASYMMETRIC KEY AKEY_SqlClr
我得到了一个错误:
找不到非对称密钥“AKEY_SqlClr”,因为它不存在或您没有权限
我怎么可能没有这个权限?我已验证是否具有创建登录权限。有什么想法吗?登录是服务器主体,因此不能从存储在用户数据库中的密钥创建登录。您必须从
master
数据库中的程序集创建密钥:
use master;
CREATE ASYMMETRIC KEY AKEY_SqlClr FROM EXECUTABLE FILE = 'C:\dlls\mySqlClr.dll';
CREATE LOGIN SQLCLR_AsymKeyLogin FROM ASYMMETRIC KEY AKEY_SqlClr;
我对这件事的记忆有点模糊。。。您是否在
主数据库中创建它?确保使用master代码>创建密钥之前。我从这个答案中发现,试图从SNK文件在主数据库中创建密钥(使用文件中的而不是可执行文件中的)在执行此操作之前,请在数据库中创建主密钥或在会话中打开主密钥,而不是DLL结果。
。然而,无论如何,使用DLL对我来说是更好的,因为这意味着我不必移动snk文件来让它在数据库中注册。