使用bacpac导入数据层应用程序

时间:2018-09-04 14:19:07

标签: sql sql-server azure azure-sql-database

我已经成功以.bacpac格式从Azure DB导出了数据库备份,但是当我要导入该.bacpac时,它将引发错误。

This is the error that I facing while import .bacpac

3 个答案:

答案 0 :(得分:1)

您可能已在Azure SQL上启用了Blob审核,对吧?

请查看这篇文章:Exported database from Azure SQL failed to be imported to Azure SQL or to local SQL Server

从该文章中摘录:

原因:
这是由于Azure SQL DB和本地SQL Server安装之间的行为不同

没有密码的主密钥是仅Azure SQL DB的功能,而本地SQL Server安装必须对主密钥进行密码加密。

解决方案:

选项1
为了减轻导入Azure SQL DB的麻烦,请使用Azure门户中的导入。

为减少导入本地SQL Server的安装,您可以更改现有的主密钥并为其添加密码加密。

这应该在导出数据库之前完成

ALTER MASTER KEY ADD ENCRYPTION BY PASSWORD = '<PasswordHere>';

选项2 为了短期缓解,我们为您提供执行以下操作的PowerShell脚本:

从bacpac中删除主键对象
从bacpac删除凭据对象

在bacpac上运行此PS脚本后,您将拥有带有“补丁”后缀的新bacpac文件。

答案 1 :(得分:1)

在将数据库导出为bacpac之前,需要执行以下步骤:

  1. 禁用数据库审核(如果已启用)。
  2. 使用DROP MASTER KEY命令删除数据库主密钥。

之后,再次导出数据库并将其导入本地SQL Server。

答案 2 :(得分:0)

我成功解决了此问题,首先我在azure数据库实例中执行CREATE MASTER KEY脚本,然后导出该数据库。然后将该数据库导入本地SQL Server。