Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Dieser Artikel beschreibt, wie man einen Datenbank-Masterschlüssel in SQL Server mit Transact-SQL wiederherstellt. Der Hauptschlüssel der Datenbank verschlüsselt andere Schlüssel und Zertifikate innerhalb einer Datenbank. Wenn es gelöscht oder beschädigt ist, kann SQL Server diese Schlüssel möglicherweise nicht entschlüsseln, und die damit verschlüsselten Daten gehen effektiv verloren. Stelle den Datenbank-Hauptschlüssel aus einem Backup wieder her, um den Zugriff auf diese Schlüssel wiederherzustellen.
Limitations
Wenn du den Datenbank-Hauptschlüssel wiederherstellst, entschlüsselt der SQL Server alle Schlüssel, die mit dem aktuell aktiven Datenbank-Hauptschlüssel verschlüsselt wurden, und verschlüsselt sie dann mit dem wiederhergestellten Datenbank-Hauptschlüssel. Planen Sie diesen ressourcenintensiven Betrieb in einer Phase geringer Nachfrage. Wenn der aktuelle Hauptschlüssel der Datenbank nicht geöffnet ist oder nicht geöffnet werden kann, oder wenn einer der von ihm verschlüsselten Schlüssel nicht entschlüsselt werden kann, schlägt die Wiederherstellungsoperation fehl.
Wenn eine der Entschlüsselungen fehlschlägt, schlägt die Wiederherstellung fehl. Du kannst die FORCE Option nutzen, Fehler zu ignorieren, aber diese Option führt zum Verlust aller Daten, die nicht entschlüsselt werden können.
Wenn der Service-Hauptschlüssel den Datenbank-Hauptschlüssel verschlüsselt, verschlüsselt er auch den wiederhergestellten Datenbank-Hauptschlüssel.
Wenn es keinen Datenbank-Masterschlüssel in der aktuellen Datenbank gibt, RESTORE MASTER KEY wird ein Datenbank-Masterschlüssel erstellt. Der Service-Hauptschlüssel verschlüsselt den neuen Datenbank-Hauptschlüssel nicht automatisch.
Berechtigungen
Erfordert die CONTROL-Berechtigung für die Datenbank.
Wiederherstellen des Datenbank-Masterschlüssels
Die Codebeispiele in diesem Artikel verwenden die AdventureWorks2025- oder AdventureWorksDW2025 Beispieldatenbank, die Sie von der Microsoft SQL Server Samples and Community Projects Homepage herunterladen können.
Rufen Sie entweder von einem physischen Sicherungsmedium oder einem Verzeichnis im lokalen Dateisystem eine Kopie des gesicherten Datenbank-Hauptschlüssels ab.
Verbinden Sie sich mit der SQL Server-Instanz, die den Datenbank-Masterschlüssel enthält, den Sie wiederherstellen möchten. Sie können eine Verbindung mit einer Sql Server-Instanz herstellen, indem Sie ein vertrautes SQL Server-Clienttool verwenden, z. B. sqlcmd, SQL Server Management Studio (SSMS) oder die MSSQL-Erweiterung für Visual Studio Code.
Überprüfen Sie das folgende Transact-SQL-Skript, und führen Sie es aus.
In diesem Beispiel:
Du stellst den Datenbank-Hauptschlüssel für
AdventureWorks2025ausC:\Temp\AdventureWorks2025_master_keywieder her.Du legst ein neues Verschlüsselungspasswort
<new-password>ein. Passen Sie diese Einstellungen an Ihre Umgebung an.
Vorsicht
Du brauchst das neue Passwort, um den Datenbank-Hauptschlüssel in Zukunft zu öffnen. Stellen Sie sicher, dass Sie dieses Passwort sicher und geschützt speichern.
USE AdventureWorks2025; GO RESTORE MASTER KEY FROM FILE = 'C:\Backups\Keys\AdventureWorks2025_master_key' DECRYPTION BY PASSWORD = '<password>' ENCRYPTION BY PASSWORD = '<new-password>'; GO