.net - .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: 脚本执行错误。执行的脚本:
解决方案
数据工具安装以及遵循此链接似乎具有发布和导入工作:
https://www.sqlshack.com/impact-clr-strict-security-configuration-setting-sql-server-2017/
推荐阅读
- html - 没有 SVG 的自定义按钮
- flutter - 如何在颤动中设置 showModalBottomSheet 宽度
- r - For循环以子集数据帧列表
- python - 如何在 keras 损失函数中正确使用 from_logits 进行二进制分类?
- gcc - 将外部 DPVS 应用程序(使用 Makefile)与使用 Meson 构建的 DPDK 链接
- c++ - 在紧密循环中哪个更快?[swich-cast, if-else, goto-label]
- objective-c - 具有按顺序运行的完成块的 GCD 队列
- android - 在android Webview中折叠html加载
- typescript - 如何避免 TypeScript 模板文字类型推断中的歧义?
- c++ - 声明没有定义的静态成员