2016-05-11 55 views
3

我有一个Azure数据库,需要移动到本地数据库。删除数据库作用域凭证

我使用SSMS导出.bacpak文件,然后连接到我的本地版本的Sql Server并尝试导入它。

导入开始,但随后失败,在这条线

Create database scoped credential... 

此功能在Azure中可用,但不能在SQL服务器2014(这将是在2016年)。

要解决此问题,我转到Azure数据库并使用SSMS删除了凭据。

所以凭证在SSMS中不再可见。

然后我创建了一个新的导出,并试图导入它。但是我收到了同样的错误信息。换句话说,尽管脚本已从数据库中删除,但脚本仍在尝试创建凭证。

有什么我需要做的完全删除证书?为了确保我没有导入原始文件,我尝试了多次导出/导入,但我确信情况并非如此。是否有紧凑的命令或需要运行的东西来完全刷新对数据库的更改?

+2

哪个版本的SSMS使用?对我来说,导入(凭证)在12.0.4100.1中正常工作。你在Azure数据库的'sys.database_credentials'中没有更多记录吗? –

+0

是的,的确是有记录的。我会看看我能否以某种方式删除它。 –

+1

成功。我使用了“Drop Database Scoped Credential”并将其从表格中删除。 @IlyaChumakov如果你发帖回答,我会接受。 –

回答

1

短期缓解我们为您提供的PowerShell脚本,请执行下列操作:

  1. 从BACPAC
  2. 从BACPAC
  3. 删除主键对象中删除凭证对象中运行之后PS脚本在bacpac上,您将拥有带有“修补”后缀的新的bacpac文件。

下载here

例如:

C:\PS> .\RemoveMasterKey.ps1 -bacpacPath "C:\BacPacs\Test.bacpac"

Original Posthttps://blogs.msdn.microsoft.com/azuresqldbsupport/2017/03/30/exported-database-from-azure-sql-failed-to-be-imported-to-azure-sql-or-to-local-sql-server/

+0

这也适用于我。它甚至在SQL Express上为我工作。 –