Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SSMS 2016-Fehler beim Importieren von Azure SQL v12 Bacpac:Hauptschlüssel ohne Kennwort werden nicht unterstützt

Ich hatte das gleiche Problem. Nachdem sie mit dem Azure-Support gesprochen hatten, fanden sie heraus, dass das Problem dadurch verursacht wurde, dass ein leerer Datenbank-Hauptschlüssel erstellt wurde, um die Speicheranmeldeinformationen für die Überwachung zu verschlüsseln (die Überwachung ist eine optionale Einstellung).

Beachten Sie, dass die Datenbanküberwachungseinstellungen von den Servereinstellungen geerbt werden.

Wie auch immer, die Arbeit, die sie sich ausgedacht haben, war:

  1. Deaktivieren Sie die Überwachung auf dem Server (oder der Datenbank)
  2. Löschen Sie den Datenbank-Hauptschlüssel mit DROP MASTER KEY Befehl.

Dann funktioniert der Export wie erwartet. Hoffentlich wird Azure dieses Problem bald beheben, damit Auditing und Export zusammenarbeiten können.

Update vom 21. März 2017 Bessere Problemumgehung von MS

Da die Bereitstellung des Fixes einige Zeit in Anspruch nehmen wird, haben sie auch eine alternative Lösung vorgeschlagen, die keine zusätzlichen Schritte (wie das Deaktivieren der Überwachung oder die Schritte aus dem Blog) auf Ihrer Seite erfordert, um dieses Problem zu vermeiden. Nachdem die Überwachung aktiviert wurde, aktualisieren Sie bitte den Hauptschlüssel und legen Sie das Passwort fest. Das Festlegen eines Kennworts für den vorhandenen Hauptschlüssel entschärft das Problem. Außerdem wirkt sich das Festlegen des Kennworts nicht auf die Überwachung aus und es funktioniert weiterhin. Die Syntax zum Hinzufügen des Passworts lautet wie folgt:

-- execute in the user database
ALTER MASTER KEY ADD ENCRYPTION BY PASSWORD = ‘##############’;

Der Link enthält auch ein PowerShell-Skript, mit dem Sie die anstößige SQL-Anweisung aus .bacpac entfernen können Datei.