尝试将 bacpac 文件导入本地 SQL 数据库时不支持终止数据库连接

问题描述 投票:0回答:2

我正在尝试将从 Azure SQL 数据库获取的 bacpac 文件导入到 SQL Server。我尝试使用 SSMS“导入数据层应用程序”,它给了我:

更新数据库 *** 导入数据库时出错:无法导入包。错误 SQL72014:核心 Microsoft SqlClient 数据提供程序:消息 4630,级别 16,状态 1, 第 1 行 不支持“KILL DATABASE CONNECTION”权限 此版本的 SQL Server。或者,使用服务器级别“ALTER” 任何连接的许可。错误 SQL72045:脚本执行错误。 执行的脚本:GRANT KILL DATABASE CONNECTION TO [测试数据库];

我也尝试使用 Windows 中的

SQLPackage.exe
,但它在命令行中给了我完全相同的错误。我在谷歌搜索错误代码或描述时没有找到太多帮助。

sql sql-server azure-sql-database
2个回答
0
投票

我尝试按照以下过程将 azure SQL 数据库的 .bacpac 文件导入到我的本地/本地 SQL 服务器中: 右键单击数据库并选择导入数据层应用程序。

enter image description here

进入介绍页面,单击导入设置页面中的下一步,从本地浏览 .bacpac 文件。如果它在天蓝色存储中,我们也可以从那里浏览它。

enter image description here

指定数据库名称:

enter image description here

点击下一步将进入摘要页面:

enter image description here

点击下一步执行导入操作。

enter image description here

数据库导入成功。

enter image description here

就我而言,我使用的是 SSMS 最新版本,没有收到任何错误。 根据您的错误,您需要在本地 SQL Server 上启用“包含的数据库身份验证”。它始终在 Azure SQL 数据库中启用,您可以使用以下代码来启用: sp_configure 'contained database authentication', 1; GO RECONFIGURE; GO

你可以检查
this

类似的问题,它可能会起作用。


0
投票

我们遇到了同样的问题,并通过以下步骤解决了此问题:

解压 bacpac 文件。

找到model.xml文件并将其复制到某个目录,例如C盘。 打开 model.xml 文件并找到内容为“Grant.KillDatabaseConnection”的 SqlPermissionStatement 元素。

重新压缩 bacpac 文件而不更改任何内容

从 XML 文件中删除与此权限关联的整个...块。

enter image description here 保存修改后的model.xml文件。

使用 sqlpackage.exe 导入操作时,请将参数 /mfp:"YourCopiedModel.xmlPath" 添加到命令中。这指示 SQL 包使用编辑后的 model.xml 文件,而不是 bacpac 中的原始文件。 按照这些步骤,您应该能够成功导入数据库,而不会遇到权限错误。

© www.soinside.com 2019 - 2024. All rights reserved.