小编use*_*986的帖子

将 .Net 程序集添加到 SQL CLR,而不打开 TRUSTWORTHY

我正在尝试使用 Solomon Rutzky 在其后程序集部署中提供的指导来添加“System.Messaging.dll”,并使用非对称密钥使用 UNSAFE 或 EXTERNAL_ACCESS 权限,但我在第一个障碍上失败了。

脚本的第一部分是从程序集创建证书;

CREATE CERTIFICATE [MS.NETcer] FROM EXECUTABLE FILE = 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Messaging.dll';
GO
Run Code Online (Sandbox Code Playgroud)

但是,当我执行此操作时,我收到错误;

Msg 15208, Level 16, State 1, Line 1
The certificate, asymmetric key, or private key file does not exist or has invalid format.
Run Code Online (Sandbox Code Playgroud)

我用来执行命令的帐户具有“sysadmin”服务器角色。这是在 SQL Server 2008 实例上。

请问有人对为什么失败有任何想法吗?

---------- 更新 1 -----------

我采纳了所罗门的建议并修改了我的脚本,使其看起来像这样;

CREATE ASYMMETRIC KEY [Key.System.Messaging] FROM EXECUTABLE FILE = 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Messaging.dll';
GO

CREATE LOGIN [CLR.Login.System.Messaging] FROM ASYMMETRIC KEY [Key.System.Messaging];
GO

GRANT UNSAFE ASSEMBLY TO [CLR.Login.System.Messaging];
GO
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都很好。我现在运行 …

sql-server-2008 sql-server best-practices sql-clr signature

5
推荐指数
1
解决办法
4100
查看次数