RESTORE MASTER KEY (Transact-SQL)
Gilt für: SQL Server
Importiert einen Datenbank-Hauptschlüssel aus einer Sicherungsdatei.
Wichtig
In SQL Server 2022 (16.x) wurde Unterstützung für das Sichern und Wiederherstellen des Datenbankhauptschlüssels in bzw. aus Azure Blob Storage eingeführt. Die URL
-Syntax ist erst ab SQL Server 2022 (16.x) verfügbar.
Transact-SQL-Syntaxkonventionen
Syntax
RESTORE MASTER KEY FROM
{
FILE = 'path_to_file'
| URL = 'Azure Blob storage URL'
}
DECRYPTION BY PASSWORD = 'password'
ENCRYPTION BY PASSWORD = 'password'
[ FORCE ]
Argumente
FILE ='path_to_file'
Gibt den vollständigen Pfad, einschließlich des Dateinamens, zum gespeicherten Datenbank-Hauptschlüssel an. path_to_file kann ein lokaler Pfad oder ein UNC-Pfad zu einem Netzwerkspeicherort sein.
URL ='Azure Blob Storage-URL'
Gilt für: SQL Server 2022 (16.x) und höher
Die URL für Ihr Azure Blob Storage-Instanz, in einem Format wie https://<storage_account_name>.blob.core.windows.net/<storage_container_name>/<backup_file_name>.bak
.
ENCRYPTION BY PASSWORD ='password'
Gibt das Kennwort an, das zum Entschlüsseln des aus einer Datei importierten Datenbank-Hauptschlüssels erforderlich ist.
ENCRYPTION BY PASSWORD ='password'
Gibt das Kennwort an, das nach dem Laden in die Datenbank zum Verschlüsseln des Datenbank-Hauptschlüssels verwendet wird.
FORCE
Gibt an, dass der RESTORE-Prozess auch dann fortgesetzt werden soll, wenn der aktuelle Datenbank-Hauptschlüssel nicht geöffnet ist oder wenn einige der privaten Schlüssel, die mit ihm verschlüsselt sind, von SQL Server nicht entschlüsselt werden können.
Bemerkungen
Bei der Wiederherstellung des Hauptschlüssels werden alle Schlüssel von SQL Server entschlüsselt, die mit dem aktuell aktiven Hauptschlüssel verschlüsselt sind. Diese Schlüssel werden dann mit dem wiederhergestellten Hauptschlüssel verschlüsselt. Die Ausführung dieses ressourcenintensiven Vorgangs sollte außerhalb der Hauptzeiten geplant werden. Falls der aktuelle Datenbank-Hauptschlüssel nicht geöffnet ist oder nicht geöffnet werden kann oder falls einer der Schlüssel, die mit ihm verschlüsselt sind, nicht entschlüsselt werden kann, ist der Wiederherstellungsvorgang nicht möglich.
Die FORCE-Option sollte nur verwendet werden, wenn der Hauptschlüssel nicht abgerufen werden kann oder wenn bei der Entschlüsselung ein Fehler aufgetreten ist. Informationen, die nur mit dem nicht abrufbaren Schlüssel verschlüsselt sind, gehen verloren.
Wurde der Hauptschlüssel mit dem Diensthauptschlüssel verschlüsselt, wird auch der wiederhergestellte Hauptschlüssel mit dem Diensthauptschlüssel verschlüsselt.
Falls in der aktuellen Datenbank kein Hauptschlüssel vorhanden ist, wird durch RESTORE MASTER KEY ein Hauptschlüssel erstellt. Der neue Hauptschlüssel wird nicht automatisch mit dem Diensthauptschlüssel verschlüsselt.
Wenn Sie SQL Server 2022 (16.x) oder eine höhere Version verwenden und den Datenbankhauptschlüssel in Azure Blob Storage sichern möchten, müssen folgende Voraussetzungen erfüllt sein:
Sie benötigen ein Azure-Speicherkonto.
Erstellen Sie eine gespeicherte Zugriffsrichtlinie sowie Speicher mit freigegebenem Zugriff.
Erstellen Sie SQL Server-Anmeldeinformationen mit einer Shared Access Signature (SAS).
Weitere Informationen finden Sie unter Tutorial: Verwenden von Azure Blob Storage mit SQL Server 2016.
Berechtigungen
Erfordert die CONTROL-Berechtigung für die Datenbank.
Beispiele
Im folgenden Beispiel wird der Datenbank-Hauptschlüssel für die AdventureWorks2022
-Datenbank aus einer Datei wiederhergestellt.
USE AdventureWorks2022;
RESTORE MASTER KEY
FROM FILE = 'c:\backups\keys\AdventureWorks2022_master_key'
DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'
ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';
GO
Im folgenden Beispiel wird der Datenbank-Hauptschlüssel für die AdventureWorks2022
-Datenbank aus Azure Blob Storage wiederhergestellt.
USE AdventureWorks2022;
RESTORE MASTER KEY
FROM URL = 'https://mydocsteststorage.blob.core.windows.net/mytestcontainer/AdventureWorks2022_master_key.bak'
DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'
ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';
GO
Weitere Informationen
CREATE MASTER KEY (Transact-SQL)
ALTER MASTER KEY (Transact-SQL)
Verschlüsselungshierarchie
RESTORE SYMMETRIC KEY