【发布时间】:2020-05-02 05:39:00
【问题描述】:
我在 C# 中创建了用户定义类型。
当我运行这个时:
EXEC sp_configure 'clr enabled', 1;
RECONFIGURE;
GO
EXEC sp_configure 'show advanced option', '1';
RECONFIGURE;
GO
USE NameOfDatabase
CREATE ASSEMBLY Database1
FROM 'C:\Users\MyDoc\Desktop\Project\Database1\Database1\bin\Debug\Database1.dll'
WITH PERMISSION_SET = SAFE;
CREATE TYPE [dbo].[TypeName] EXTERNAL NAME [Database1].[NameInC#];
我收到一个错误:
消息 10343,第 14 级,状态 1,第 10 行
使用 SAFE 或 EXTERNAL_ACCESS 选项为程序集“Database1”创建或更改程序集失败,因为 sp_configure 的“clr strict security”选项设置为 1。Microsoft 建议您使用具有相应登录名的证书或非对称密钥对程序集进行签名不安全组装许可。或者,您可以使用 sp_add_trusted_assembly 信任程序集。
如何解决?
【问题讨论】:
-
错误信息中给出了两种解决方案。你试过哪一个?
-
通过阅读它的内容并遵循给出的建议:
you sign the assembly with a certificate or asymmetric key that has a corresponding login with UNSAFE ASSEMBLY permission.或者,如果这不适合您,作为替代方案,you can trust the assembly using sp_add_trusted_assembly. -
@AndrewMorton 两个
-
@TechGnome 我都试过了
-
@Lazar 在问题中这样说是个好主意;)您尝试这些解决方案时是否有任何错误消息?
标签: sql-server sqlclr