【发布时间】:2018-04-28 05:52:04
【问题描述】:
我有 2 个在 Visual Studio (VS) 2015 中签名的 DLL。一位前员工创建了一个非对称密钥并登录,我在 UNSAFE 模式下正确运行了其中一个程序集。
我收到第二个错误:
消息 10327,第 14 层,状态 1,第 27 行
为程序集“TableFile”创建程序集失败,因为程序集“TableFile”未获得 PERMISSION_SET = UNSAFE 的授权。当以下任一情况为真时,程序集被授权:数据库所有者 (DBO) 具有 UNSAFE ASSEMBLY 权限并且数据库具有 TRUSTWORTHY 数据库属性;或者该程序集使用证书或非对称密钥签名,该证书或非对称密钥具有相应的登录名并具有 UNSAFE ASSEMBLY 权限。
我无法询问前任员工,那么我该如何了解如何让它运行?我也试过这个:
USE master;
GO
CREATE ASYMMETRIC KEY AProjectKey FROM EXECUTABLE FILE = 'E:\sqldlls\TableFile.dll'
CREATE LOGIN AProjectLogin FROM ASYMMETRIC KEY AProjectKey ;
GRANT UNSAFE ASSEMBLY TO AProjectLogin ;
GO
这会产生以下错误:
消息 15396,第 16 级,状态 1,第 9 行
名称为“AProjectKey”的非对称密钥已存在或该非对称密钥已添加到数据库中。消息 15151,第 16 级,状态 1,第 10 行
找不到非对称密钥“AProjectKey”,因为它不存在或您没有权限。消息 15151,第 16 级,状态 1,第 11 行
找不到登录“AProjectLogin”,因为它不存在或您没有权限。
如何让这两个程序集在不安全模式下运行?提前致谢。
【问题讨论】:
标签: c# sql-server assemblies sqlclr encryption-asymmetric