Verschlüsseln der Sicherung

Gilt für:SQL Server

Dieser Artikel enthält eine Übersicht über die Verschlüsselungsoptionen für SQL Server-Sicherungen. Es enthält Details zur Verwendung, zu den Vorteilen und empfohlenen Vorgehensweisen beim Verschlüsseln bei der Sicherung.

Überblick

Ab SQL Server 2014 (12.x) kann SQL Server die Daten beim Erstellen einer Sicherung verschlüsseln. Durch das Angeben des Verschlüsselungsalgorithmus und der Verschlüsselung (ein Zertifikat oder ein asymmetrischer Schlüssel) beim Erstellen einer Sicherung können Sie eine verschlüsselte Sicherungsdatei anlegen. Alle Speicherziele: lokale und Azure-Speicher werden unterstützt. Darüber hinaus können Verschlüsselungsoptionen für SQL Server Managed Backup für Microsoft Azure-Vorgänge konfiguriert werden, ein neues Feature, das in SQL Server 2014 (12.x) eingeführt wurde.

Um während der Sicherung eine Verschlüsselung durchzuführen, müssen Sie einen Verschlüsselungsalgorithmus und eine Verschlüsselungsmethode angeben, um den Verschlüsselungsschlüssel zu sichern. Folgende Verschlüsselungsoptionen werden unterstützt:

  • Verschlüsselungsalgorithmus: Die unterstützten Verschlüsselungsalgorithmen sind: AES 128, AES, AES 192 256 und Triple DES

  • Verschlüsselung: ein Zertifikat oder ein asymmetrischer Schlüssel

Achtung

Es ist sehr wichtig, das Zertifikat oder den asymmetrischen Schlüssel zu sichern, und vorzugsweise an einem anderen Speicherort als die Sicherungsdatei, die zum Verschlüsseln verwendet wurde. Ohne das Zertifikat oder den asymmetrischen Schlüssel können Sie keine Sicherung wiederherstellen, sodass die Sicherungsdatei unbrauchbar ist. Zertifikate, die in einer enthaltenen Systemdatenbank gespeichert sind, sollten ebenfalls gesichert werden.

Wiederherstellung der verschlüsselten Sicherung: Sql Server-Wiederherstellung erfordert keine Verschlüsselungsparameter, die während der Wiederherstellung angegeben werden müssen. Es ist erforderlich, dass das Zertifikat oder der asymmetrische Schlüssel, der zum Verschlüsseln der Sicherungsdatei verwendet wird, in der Instanz verfügbar ist, in der Sie wiederherstellen. Das Benutzerkonto, unter dem die Wiederherstellung ausgeführt wird, muss über VIEW DEFINITION-Berechtigungen für das Zertifikat oder den Schlüssel verfügen. Wenn Sie die verschlüsselte Sicherung in einer anderen Instanz wiederherstellen, müssen Sie sicherstellen, dass das Zertifikat in dieser Instanz verfügbar ist.
So stellen Sie eine verschlüsselten Datenbank an einem neuen Speicherort wieder her:

  1. BACKUP CERTIFICATE (Transact-SQL) in der alten Datenbank
  2. CREATE MASTER KEY (Transact-SQL) in der neuen Standortdatenbank master
  3. CREATE CERTIFICATE (Transact-SQL) aus dem Sicherungszertifikat der alten Datenbank, das in einen Speicherort auf dem neuen Server importiert wurde
  4. Wiederherstellen einer Datenbank an einem neuen Speicherort (SQL Server)

Wenn Sie eine Sicherung aus einer verschlüsselten TDE-Datenbank wiederherstellen, sollte das TDE-Zertifikat für die Instanz verfügbar sein, in der Sie wiederherstellen. Weitere Informationen finden Sie unter Verschieben einer TDE-geschützten Datenbank in einen anderen SQL Server.

Vorteile

  1. Das Verschlüsseln der Datenbanksicherungen trägt zum Schutz der Daten bei: SQL Server bietet die Option, die Sicherungsdaten beim Erstellen einer Sicherung zu verschlüsseln.

  2. Verschlüsselung kann auch für Datenbanken verwendet werden, die mithilfe von TDE verschlüsselt werden.

  3. Die Verschlüsselung wird für Sicherungen unterstützt, die von SQL Server Managed Backup für Microsoft Azure durchgeführt werden, was zusätzliche Sicherheit für Off-Site-Sicherungen bietet.

  4. Diese Funktion unterstützt mehrere Verschlüsselungsalgorithmen bis zu AES 256 Bit. So können Sie einen Algorithmus auswählen, der Ihren Anforderungen entspricht.

  5. Sie können Verschlüsselungsschlüssel in EKM-Anbieter (Extensible Key Management) integrieren.

Voraussetzungen

Voraussetzungen zum Verschlüsseln einer Sicherung:

  1. Erstellen Sie einen Datenbankmasterschlüssel für die master Datenbank: Der Datenbankmasterschlüssel (DMK) ist ein symmetrischer Schlüssel, der zum Schutz der privaten Schlüssel von Zertifikaten und asymmetrischen Schlüsseln verwendet wird, die in der Datenbank vorhanden sind. Weitere Informationen finden Sie unter SQL Server- und Datenbankverschlüsselungsschlüssel (Datenbank-Engine).For more information, see SQL Server and Database Encryption Keys (Datenbank-Engine).

  2. Erstellen Sie ein Zertifikat oder einen asymmetrischen Schlüssel, der für die Sicherungsverschlüsselung verwendet werden soll. Weitere Informationen zum Erstellen eines Zertifikats finden Sie unter CREATE CERTIFICATE (Transact-SQL).For more information on creating a certificate, see CREATE CERTIFICATE (Transact-SQL). Weitere Informationen zum Erstellen eines asymmetrischen Schlüssels finden Sie unter CREATE ASYMMETRIC KEY (Transact-SQL).

    Wichtig

    Nur asymmetrische Schlüssel, die sich in einer Extensible Key Management (EKM) befinden, werden unterstützt.

Begrenzungen

Folgende Einschränkungen gelten für die Verschlüsselungsoptionen:

  • Wenn Sie einen asymmetrischen Schlüssel zum Verschlüsseln der Sicherungsdaten verwenden, werden nur asymmetrische Schlüssel unterstützt, die sich im EKM-Anbieter befinden.

  • SQL Server Express und SQL Server Web unterstützen während der Sicherung keine Verschlüsselung. Das Wiederherstellen von einer verschlüsselten Sicherung in eine SQL Server Express- oder SQL Server Web-Instanz wird allerdings unterstützt.

  • In früheren Versionen von SQL Server können keine verschlüsselten Sicherungen gelesen werden.

  • Das Anfügen an eine vorhandene Sicherungssatzoption wird für verschlüsselte Sicherungen nicht unterstützt.

Berechtigungen

Das Konto, das Sicherungsvorgänge für eine verschlüsselte Datenbank durchführt, erfordert spezifische Berechtigungen.

  • Die Datenbankrolle db_backupoperator für die Datenbank ist erforderlich, die gesichert wird. Dies ist unabhängig von der Verschlüsselung erforderlich.

  • VIEW DEFINITION Berechtigung für das Zertifikat in master der Datenbank.

    Im folgenden Beispiel werden die entsprechenden Berechtigungen für das Zertifikat gewährt.

    USE [master]
    GO
    GRANT VIEW DEFINITION ON CERTIFICATE::[<SERVER_CERT>] TO [<db_account>]
    GO
    

Hinweis

Der Zugriff auf das TDE-Zertifikat ist nicht erforderlich, um eine TDE-geschützte Datenbank zu sichern oder wiederherzustellen.

Sicherungsverschlüsselungsmethoden

In den folgenden Abschnitten finden Sie eine kurze Einführung in die Schritte zum Verschlüsseln der Daten während der Sicherung. Eine vollständige exemplarische Vorgehensweise der einzelnen Schritte, die Sie beim Verschlüsseln der Sicherung mithilfe von Transact-SQL ausführen, finden Sie unter Erstellen einer verschlüsselten Sicherung.

Verwenden von SQL Server Management Studio

Sie können eine Sicherung verschlüsseln, wenn Sie die Datenbanksicherung in einem der folgenden Dialogfelder erstellen:

  1. Back Up Database (Backup Options Page) On the Backup Options page, you can select Encryption, and specify the encryption algorithm and the certificate or asymmetrisch key to use for the encryption.

  2. Verwendung des Wartungsplanungs-Assistenten – Wenn Sie einen Sicherungstask auswählen, können Sie auf der Registerkarte Optionen der Seite Define Backup ()Task (Sicherungstask () definieren) die Option Sicherungsverschlüsselungauswählen und den Verschlüsselungsalgorithmus und das Zertifikat oder den Schlüssel angeben, das bzw. der für die Verschlüsselung verwendet werden soll.

Verwenden von Transact-SQL

Es folgt eine Transact-SQL-Beispielanweisung zum Verschlüsseln der Sicherungsdatei:

BACKUP DATABASE [MYTestDB]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\MyTestDB.bak'
WITH
  COMPRESSION,
  ENCRYPTION
   (
   ALGORITHM = AES_256,
   SERVER CERTIFICATE = BackupEncryptCert
   ),
  STATS = 10
GO

Die vollständige Transact-SQL-Anweisungssyntax finden Sie unter BACKUP (Transact-SQL).

Nutzen von PowerShell

In diesem Beispiel werden die Verschlüsselungsoptionen erstellt und als Parameterwert im Backup-SqlDatabase Cmdlet verwendet, um eine verschlüsselte Sicherung zu erstellen.

$encryptionOption = New-SqlBackupEncryptionOption -Algorithm Aes256 -EncryptorType ServerCertificate -EncryptorName "BackupCert"

Backup-SqlDatabase -ServerInstance . -Database "<myDatabase>" -BackupFile "<myDatabase>.bak" -CompressionOption On -EncryptionOption $encryptionOption

Erstellen Sie eine Sicherung des Verschlüsselungszertifikats und der Schlüssel an einem anderen Speicherort als dem lokalen Computer, auf dem die Instanz installiert ist. Zur Wiederherstellung in Notfallszenarien sollten Sie eine Sicherung des Zertifikats oder des Schlüssels an einem anderen Ort aufbewahren. Sie können eine verschlüsselte Sicherung nicht wiederherstellen, ohne dass das Zertifikat zum Verschlüsseln der Sicherung verwendet wird.

Um eine verschlüsselte Sicherung wiederherzustellen, sollte das originale Zertifikat, das beim Erstellen der Sicherung mit dem entsprechenden Fingerabdruck verwendet wurde, für die Instanz verfügbar sein, in der Sie wiederherstellen. Daher sollte das Zertifikat nicht nach Ablauf verlängert oder auf irgendeine Weise geändert werden. Die Verlängerung kann zum Aktualisieren des Zertifikats führen, was die Änderung des Fingerabdrucks auslöst, sodass das Zertifikat für die Sicherungsdatei ungültig wird. Das Konto, unter dem die Wiederherstellung ausgeführt wird, sollte über die VIEW DEFINITION-Berechtigung für das Zertifikat oder den asymmetrischen Schlüssel verfügen, das bzw. der für die Verschlüsselung während der Sicherung verwendet wird.

Sicherungen für Datenbanken in Verfügbarkeitsgruppen werden in der Regel auf dem bevorzugten Sicherungsreplikat ausgeführt. Wenn Sie eine Sicherung auf einem anderen Replikat als dem Speicherort der Sicherung wiederherstellen, stellen Sie sicher, dass das für die Sicherung verwendete Originalzertifikat für das Replikat verfügbar ist, in dem Sie wiederherstellen möchten.

Wenn TDE für die Datenbank aktiviert wurde, wählen Sie andere Zertifikate oder asymmetrische Schlüssel zum Verschlüsseln der Datenbank und der Sicherung aus, um die Sicherheit zu erhöhen.