Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法从azure数据库中删除blob存储凭据以允许bacpac本地还原?_Azure_Azure Sql Database_Ssms_Sql Server Express_Data Tier Applications - Fatal编程技术网

有没有办法从azure数据库中删除blob存储凭据以允许bacpac本地还原?

有没有办法从azure数据库中删除blob存储凭据以允许bacpac本地还原?,azure,azure-sql-database,ssms,sql-server-express,data-tier-applications,Azure,Azure Sql Database,Ssms,Sql Server Express,Data Tier Applications,我正在尝试从Azure导出bacpac并在SQLEXPRESS 2016上本地还原它。当我试图恢复它时,尽管我从SSMS中的导入数据层应用程序向导中收到以下错误: 无法导入包 警告SQL72012:对象 目标中存在[TestBacPacDB_Data],但不会删除它 即使您选择了“为对象生成拖放语句” 在目标数据库中但不在源“检查”中的 盒子 警告SQL72012:对象[TestBacPacDB_Log]存在于 目标,但即使选择了 '为目标数据库中的对象生成drop语句 但这些都不在来源文件中

我正在尝试从Azure导出bacpac并在SQLEXPRESS 2016上本地还原它。当我试图恢复它时,尽管我从SSMS中的导入数据层应用程序向导中收到以下错误:

无法导入包

警告SQL72012:对象 目标中存在[TestBacPacDB_Data],但不会删除它 即使您选择了“为对象生成拖放语句” 在目标数据库中但不在源“检查”中的 盒子

警告SQL72012:对象[TestBacPacDB_Log]存在于 目标,但即使选择了 '为目标数据库中的对象生成drop语句 但这些都不在来源文件中

错误SQL72014:.Net SqlClient数据提供程序:Msg 33161,级别15,状态1,第1行数据库 此版本的SQL不支持没有密码的主密钥 服务器。错误SQL72045:脚本执行错误。执行的脚本: 创建主密钥

经过一些挖掘,我发现一个凭证和主密钥已经添加到数据库中。凭证名称引用了一个blob存储容器,因此我认为可能是在某个时候将容器设置为外部资源或类似的内容

我想删除此凭据,以便在本地还原数据库,但数据库会抛出一个错误,说明它正在使用中。我已尝试禁用Azure中的登录,但仍无法删除凭据

我知道Azure关闭资源有时需要时间,所以这可能是原因,但我想知道是否有其他人也有类似的问题


我试图避免为主密钥设置密码,因为我不关心本地的凭证,正如这个问题所述:

我遇到了完全相同的问题,并尝试了大量可能的修复方法。大多数都与重新键入系统、先复制等有关。。。绝对没有任何效果

尽管这很疯狂,但我最终能绕过它的唯一方法是手动编辑内部结构:

  • 在任何地方从原始来源或副本获取bacpac
  • 重命名为.zip,并解压缩文件夹结构
  • 编辑“model.xml”,搜索与“主密钥”和/或“共享访问签名”有关的任何内容,并删除相应的节点
  • 为现在修改的model.xml计算Sha-256校验和
  • 替换“Origin.xml”底部的校验和
  • 重新压缩所有文件并重命名回xxx.bacpac
  • 像平常一样导入到本地系统

  • 最终,我们创建了一个主密钥。为了以这种方式在本地恢复数据库,我们首先在SSMS中手动创建数据库,然后向其添加主密钥。这允许数据导入正常工作。

    您没有解释如何计算新的校验和。此答案提供了所需的powershell脚本: