2

.bacpac将数据库备份(文件)还原到我的本地 SQL Server 2016 实例时出现以下错误。

标题:Microsoft SQL Server 管理工作室

无法导入包。

警告 SQL72012:对象 [Azure_Data] 存在于目标中,但即使您选中了“为目标数据库中但不在源中的对象生成删除语句”复选框,它也不会被删除。

警告 SQL72012:对象 [Azure_Log] 存在于目标中,但即使您选中了“为目标数据库中但不在源中的对象生成删除语句”复选框,它也不会被删除。

错误 SQL72014:.Net SqlClient 数据提供程序:


此版本的 SQL Server 不支持消息 33161、级别 15、状态 1、行 1无密码的数据库主密钥。

错误 SQL72045:脚本执行错误。执行脚本:CREATE MASTER KEY;

4

2 回答 2

3

这是由于 SQL Azure 和 SQL Server 2016 之间的差异。拥有没有密码的主密钥是 Azure 独有的功能。有两种方法可以解决这个问题。

1) 打开 .bacpac 并删除主密钥对象以及凭证对象。(将 .bacpac 重命名为 .zip,解压缩然后查看 xml 文件,进行必要的更改,压缩备份并重命名为 .bacpac)

或者

2) 在将数据库导出到 .bacpac 之前,使用以下命令向主密钥添加密码加密: ALTER MASTER KEY ADD ENCRYPTION BY PASSWORD = '<PasswordHere>';

于 2017-12-04T20:13:58.673 回答
3

现在有一个更简单的解决方案。下载 SSMS 的更新...至少版本 14.0.17277.0。这样您就不必玩弄万能钥匙或修补 bacpac 文件。这要容易得多。

于 2018-08-15T20:03:40.560 回答