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

SQL Server 2008 Open Master Key-Fehler beim Wechsel des physischen Servers

Der Datenbank-Hauptschlüssel wird mit dem Server-Hauptschlüssel verschlüsselt, der spezifisch für den Computer ist, auf dem SQL Server installiert ist. Wenn Sie die Datenbank auf einen anderen Server verschieben, verlieren Sie die Möglichkeit, den Hauptschlüssel der Datenbank automatisch zu entschlüsseln und zu öffnen, da der Schlüssel des lokalen Servers höchstwahrscheinlich anders sein wird. Wenn Sie den Datenbank-Hauptschlüssel nicht entschlüsseln können, können Sie nichts anderes entschlüsseln, was davon abhängt (Zertifikate, symmetrische Schlüssel usw.).

Grundsätzlich möchten Sie den Datenbank-Hauptschlüssel gegen den neuen Serverschlüssel neu verschlüsseln, was mit diesem Skript (mit Administratorrechten) erfolgen kann:

-- Reset database master key for server (if database was restored from backups on another server)
OPEN MASTER KEY DECRYPTION BY PASSWORD = '---your database master key password---'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
GO

Beachten Sie, dass Sie beim Erstellen eines Datenbankhauptschlüssels immer auch ein Kennwort angeben sollten, damit Sie den Schlüssel mit dem Kennwort in dem Szenario öffnen können, in dem der Diensthauptschlüssel nicht verwendet werden kann – hoffentlich haben Sie dieses Kennwort irgendwo gespeichert!

Alternativ können Sie eine Sicherung des Datenbank-Hauptschlüssels wiederherstellen – aber Sie benötigen eine, die für den Zielserver erstellt wurde, nicht für den Quellserver.

Wenn Sie weder ein Backup noch ein Passwort haben, bin ich mir nicht sicher, ob Sie die verschlüsselten Daten auf dem neuen Server wiederherstellen können, da Sie den Datenbank-Hauptschlüssel löschen und mit einem neuen Passwort neu erstellen müssen. wodurch alle abhängigen Schlüssel und Daten gelöscht werden.