在SQL服务器内部创build一个不对称的密钥来访问DLL失败

我需要从SQL触发器访问一个DLL(C#)来满足我们的一个要求。 我编译了DLL,并可以使用“创build程序集”在SQL服务器空间中加载它,然后为其创build一个触发器。

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

 ALTER DATABASE %DBName% SET TRUSTWORTHY ON; 

但是在意识到这是不安全的方式之后,我用一个密钥( .snk文件)签署了DLL,并尝试创build一个非对称密钥,然后根据密钥创build一个login名,我可以为他们提供外部访问权限。 要么没有将数据库设置为值得信赖,要么除非我创build了可以使用密钥访问DLL的用户,否则我不能使用该DLL,因为它执行文件访问。 因此,DLL必须加载一个外部访问权限。 但是在做下面的查询来创build非对称密钥时,我得到一个查询后面的错误,

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

“消息15208,16级,状态1,2号线

证书,非对称密钥或私钥文件不存在或格式无效。

.snk文件与DLL的path相同。 在这里请求你的帮助。

如果这不是正确的做法,请提出build议。