首页 > 解决方案 > .Net 发布数据库项目和导入失败

问题描述

我正在尝试将数据库从 sql server 版本 12.0.5203​​ 切换到 14.0.1000,但是我遇到了问题。虽然我无法获取要导入的备份,但我也无法将项目发布到空白数据库。当我运行数据库发布时,我很快收到一条错误消息:

“无法连接到主服务器或目标服务器 [database_name]。您必须在主服务器或目标服务器 [database_name] 中拥有具有相同密码的用户。”

在同一个项目中,我已经向旧版本的数据库发布了 100 次。

因此,除了发布问题。我尝试导出数据层应用程序并使用较新版本的 sql server 导入,每次这样做时,我都会在导入时收到以下错误。

无法导入包。警告 SQL72012:对象 [itss_tutor_3_Data] 存在于目标中,但即使您选中了“为目标数据库中但不在源中的对象生成删除语句”复选框,它也不会被删除。警告 SQL72012:对象 [itss_tutor_3_Log] 存在于目标中,但即使您选中了“为目标数据库中但不在源中的对象生成删除语句”复选框,它也不会被删除。错误 SQL72014:.Net SqlClient 数据提供程序:消息 15404,级别 16,状态 19,第 1 行无法获取有关 Windows NT 组/用户“PSLLC\dbodenschatz”的信息,错误代码 0x54b。错误 SQL72045:脚本执行错误。执行的脚本:

所以基本上我无法导入现有数据库,也无法发布到空数据库。但是我可以很好地发布到旧版本。

更新:我安装了较新版本的 Sql Server Data Tools 并重新启动。现在发布不会立即失败,而是我收到此错误:

正在创建 [GroupConcat]... (65,1):SQL72014:.Net SqlClient 数据提供者:消息 10343,级别 14,状态 1,第 1 行使用 SAFE 或 EXTERNAL_ACCESS 选项为程序集“GroupConcat”创建或更改程序集失败,因为sp_configure 的“clr strict security”选项设置为 1。Microsoft 建议您使用证书或非对称密钥对程序集进行签名,该证书或非对称密钥具有相应的登录名并具有 UNSAFE ASSEMBLY 权限。或者,您可以使用 sp_add_trusted_assembly 信任程序集。(65,0): SQL72045: 脚本执行错误。执行的脚本:

标签: .netsql-serverasp.net-mvcvisual-studio

解决方案


数据工具安装以及遵循此链接似乎具有发布和导入工作:

https://www.sqlshack.com/impact-clr-strict-security-configuration-setting-sql-server-2017/


推荐阅读