在SQL Server中创建非对称密钥以访问DLL失败

时间:2015-10-24 08:19:39

标签: sql-server

我需要从SQL Server触发器访问DLL(C#)以满足我们的一个要求。我编译了DLL并可以使用Create Assembly命令在SQL Server空间中加载它,然后为它创建一个触发器。

通过将TRUSTWORTHY标志设置为ON,我已将数据库设置为值得信任。

ALTER DATABASE %DBName% SET TRUSTWORTHY ON;

但是在意识到这是不安全的方式之后,我已经用密钥(.snk文件)签署了DLL,并试图创建一个非对称密钥,然后根据密钥创建一个登录名,对谁来说我可以进行外部访问。如果没有将DB设置为可信任或者除非我创建可以使用密钥访问DLL的用户,我就无法使用DLL,因为它执行文件访问。因此,DLL必须加载外部访问权限。但在执行以下查询以创建非对称密钥时,我收到的错误是在查询

之后
USE [master];
GO

CREATE ASYMMETRIC KEY [ClrPermissionsKey]
AUTHORIZATION [dbo]
FROM EXECUTABLE FILE = 'D:\Trigger\TriggerManager.dll'

错误讯息:

  

Msg 15208,Level 16,State 1,Line 2
  证书,非对称密钥或私钥文件不存在或格式无效。

.snk文件与DLL位于同一路径中。在这里请求你的帮助。

如果这不是正确的做法,请建议。

0 个答案:

没有答案