Verschlüsseln der Sicherung

Gilt für:SQL Server

Dieser Artikel bietet 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.

Übersicht

Beginnend mit SQL Server 2014 (12.x) hat SQL Server die Möglichkeit, die Daten beim Erstellen einer Sicherung zu 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 − lokaler und Azure-Speicher − werden unterstützt. Darüber hinaus können Verschlüsselungsoptionen für Operationen der verwalteten SQL Server-Sicherung in Microsoft Azure 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 – 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 geschlossenen Systemdatenbank gespeichert sind, sollten ebenfalls gesichert werden.

Wiederherstellen der verschlüsselten Sicherung: Die SQL Server-Wiederherstellung erfordert keine Verschlüsselungsparameter, die während der Wiederherstellung angegeben werden müssen. Sie setzt aber voraus, dass das Zertifikat oder der asymmetrische Schlüssel, die zum Verschlüsseln der Sicherungsdatei verwendet werden, in der Instanz verfügbar ist, auf der Sie die Wiederherstellung ausführen. 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 für diese 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 master-Datenbank am neuen Speicherort
  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 von einer TDE-verschlüsselten Datenbank wiederherstellen, sollte das TDE-Zertifikat auf der Instanz verfügbar sein, auf der die Wiederherstellung erfolgen soll. Weitere Informationen finden Sie unter Verschieben einer TDE-geschützten Datenbank auf 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 der verwalteten SQL Server-Sicherung in Microsoft Azure durchgeführt werden, was zusätzliche Sicherheit für externe Sicherungen bereitstellt.

  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 Datenbank-Hauptschlüssels für die master-Datenbank: Der Datenbank-Hauptschlüssel ist ein symmetrischer Schlüssel, der zum Schützen von in der Datenbank vorhandenen privaten Schlüsseln von Zertifikaten und asymmetrischen Schlüsseln verwendet wird. Weitere Informationen finden Sie unter Verschlüsselungsschlüssel für SQL Server und Datenbank (Datenbank-Engine).

  2. Erstellen Sie ein Zertifikat oder einen asymmetrischen Schlüssel, der für die Sicherungsverschlüsselung verwendet wird. Weitere Informationen zum Erstellen eines Zertifikats finden Sie unter ZERTIFIKAT ERSTELLEN (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 Erweiterbare Schlüsselverwaltung (Extensible Key Management, EKM) befinden, werden unterstützt.

Begrenzungen

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

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

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

  • Frühere Versionen von SQL Server können verschlüsselte Sicherungen nicht lesen.

  • Das Anfügen an einen vorhandenen Sicherungssatz 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 auf dem Zertifikat in der master-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 durch TDE geschützte Datenbank zu sichern oder wiederherzustellen.

Methoden zur Sicherungsverschlüsselung

Die folgenden Abschnitte enthalten 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. Datenbank sichern (Backup Options Page) – Auf der Seite Sicherungsoptionen können Sie Verschlüsselung auswählen und den Verschlüsselungsalgorithmus und das Zertifikat oder den asymmetrischen Schlüssel angeben, der für die Verschlüsselung verwendet werden soll.

  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 Syntax der Transact-SQL-Anweisung finden Sie unter BACKUP (Transact-SQL).

Verwenden von PowerShell

In diesem Beispiel werden die Verschlüsselungsoptionen erstellt und als Parameterwert im Cmdlet Backup-SqlDatabase 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 ohne das Zertifikat wiederherstellen, das verwendet wird, um die Sicherung zu verschlüsseln.

Zur Wiederherstellung einer verschlüsselten Sicherung sollte das ursprüngliche Zertifikat, das beim Erstellen der Sicherung mit übereinstimmendem Fingerabdruck verwendet wurde, auf der Instanz verfügbar sein, auf der die Wiederherstellung erfolgt. Deshalb sollte das Zertifikat beim Ablauf nicht verlängert oder 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 wiederherstellen, von dem die Sicherung erstellt wurde, stellen Sie sicher, dass das ursprüngliche, für die Sicherung verwendete Zertifikat auf dem Replikat verfügbar ist, auf dem die Wiederherstellung erfolgt.

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.