【发布时间】:2020-05-05 22:22:54
【问题描述】:
我正在使用 Microsoft SQL Server 2017 Express 版和 Visual Studio 2017。
我按照这个教程https://www.youtube.com/watch?v=nczucm60YF0&t=2s,但我得到这个错误:
在数据库“数据库名称”上执行发布脚本
完整的消息是:
正在创建 [SQLCLRUDTypeDemo]... (94,1):
SQL72014:.Net SqlClient 数据提供者:消息 10343,第 14 级,状态 1,第 1 行
使用 SAFE 或 EXTERNAL_ACCESS 选项为程序集“SQLCLRUDTypeDemo”创建或更改程序集失败,因为 sp_configure 的“clr strict security”选项设置为 1。Microsoft 建议您使用具有相应登录名的证书或非对称密钥对程序集进行签名不安全组装许可。或者,您可以使用 sp_add_trusted_assembly 信任程序集。(94,0):SQL72045:脚本执行错误。
执行的脚本:
创建程序集 [SQLCLRUDTypeDemo]
授权 [dbo]
从0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C010300E6BA245E0000000000000000E00022200B013000000A0000000600000000000066280000002000000040000000000010002000000002000004000000000000000600000000000000008000000002000000000000030060850000100000100000000010000010000000000000100000000000000000000000142800004F00000000400000C802000000000000000000000000000000000000006000000C000000DC2600001C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E746578740000006C08000000200000000A000000020000000000000000000000000000200000602E72737263000000C80200000040000000040000000C0000000000000000000000000000400000402E72656C6F6300000C0000000060000000020000结果 执行批处理时出错。
解决办法是什么?我在任何地方都没有发现这个问题。我在 SQL Server 中发现错误,但在 C# 中没有。
【问题讨论】:
-
必须对用于 CLR 类型的程序集进行签名或禁用安全选项。 阅读并搜索实际/相关错误:“使用 SAFE 或 EXTERNAL_ACCESS 选项创建或更改程序集 '..' 失败,因为 sp_configure 的 'clr strict security' 选项设置为 1。 ..” - 搜索相关错误后,还有哪些问题?
-
我尝试使用 exec sp_configure 'clr enable', 1 reconfigure 但它给了我一个错误。我解决了这个问题: EXEC sp_configure 'show advanced options', 1 RECONFIGURE; EXEC sp_configure 'clr strict security', 0;重新配置;
标签: c# sql-server sqlclr