2016-05-11 58 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上爲我工作。 –