有没有办法从azure数据库中删除blob存储凭据以允许bacpac本地还原?
我正在尝试从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关闭资源有时需要时间,所以这可能是原因,但我想知道是否有其他人也有类似的问题有没有办法从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语句 但这些都不在来源文件中
我试图避免为主密钥设置密码,因为我不关心本地的凭证,正如这个问题所述:我遇到了完全相同的问题,并尝试了大量可能的修复方法。大多数都与重新键入系统、先复制等有关。。。绝对没有任何效果 尽管这很疯狂,但我最终能绕过它的唯一方法是手动编辑内部结构:
最终,我们创建了一个主密钥。为了以这种方式在本地恢复数据库,我们首先在SSMS中手动创建数据库,然后向其添加主密钥。这允许数据导入正常工作。您没有解释如何计算新的校验和。此答案提供了所需的powershell脚本: