Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 找不到非对称密钥--因为它不存在或您没有权限_.net_Sql_Sql Server_Clr_Sqlclr - Fatal编程技术网

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

.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

我正在尝试使用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 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文件来让它在数据库中注册。