Freigeben über


TDE (Transparent Data Encryption)

Transparent Data Encryption (TDE) verschlüsselt SQL Server- und Azure SQL-Datenbankdatendateien, die als Verschlüsselung ruhender Daten bezeichnet werden. Sie können mehrere Vorsichtsmaßnahmen ergreifen, um die Datenbank zu schützen, z. B. das Entwerfen eines sicheren Systems, das Verschlüsseln vertraulicher Ressourcen und das Erstellen einer Firewall auf den Datenbankservern. In einem Szenario, in dem die physischen Medien (z. B. Laufwerke oder Sicherungsbänder) gestohlen werden, kann eine böswillige Partei die Datenbank einfach wiederherstellen oder anfügen und die Daten durchsuchen. Eine Lösung besteht darin, die vertraulichen Daten in der Datenbank zu verschlüsseln und die Schlüssel zu schützen, die zum Verschlüsseln der Daten mit einem Zertifikat verwendet werden. Dadurch wird verhindert, dass jeder benutzer ohne die Schlüssel die Daten verwendet, aber diese Art des Schutzes muss im Voraus geplant werden.

TDE führt die E/A-Verschlüsselung und -Entschlüsselung der Daten- und Protokolldateien in Echtzeit durch. Die Verschlüsselung verwendet einen Datenbank-Verschlüsselungsschlüssel (DEK), der im Startdatensatz der Datenbank gespeichert wird und während der Wiederherstellung zur Verfügung steht. Der DEK ist ein symmetrischer Schlüssel, der durch ein in der master -Datenbank des Servers gespeichertes Zertifikat gesichert wird, oder ein asymmetrischer Schlüssel, der von einem EKM-Modul geschützt wird. TDE schützt die "ruhenden" Daten, also die Daten- und die Protokolldateien. Sie entspricht den in vielen Branchen etablierten Gesetzen, Bestimmungen und Richtlinien. Dadurch können Softwareentwickler Daten mithilfe von AES- und 3DES-Verschlüsselungsalgorithmen verschlüsseln, ohne vorhandene Anwendungen zu ändern.

Über TDE

Die Verschlüsselung der Datenbankdatei erfolgt auf Seitenebene. Die Seiten in einer verschlüsselten Datenbank werden verschlüsselt, bevor sie in den Datenträger geschrieben und entschlüsselt werden, wenn sie in den Arbeitsspeicher gelesen werden. TDE erhöht nicht die Größe der verschlüsselten Datenbank.

Informationen, die für SQL-Datenbank gelten

Wenn Sie TDE mit SQL-Datenbank V12 V12 (Vorschau in einigen Regionen) verwenden, wird das in der Masterdatenbank gespeicherte Zertifikat auf Serverebene automatisch von SQL-Datenbank erstellt. Um eine TDE-Datenbank in der SQL-Datenbank zu verschieben, müssen Sie die Datenbank entschlüsseln, die Datenbank verschieben und dann TDE in der SQL-Zieldatenbank erneut aktivieren. Schrittweise Anleitungen für TDE in sql-Datenbank finden Sie unter Transparent Data Encryption with Azure SQL Database.

Die Vorschauversion des Status von TDE gilt auch in der Teilmenge der geografischen Regionen, in denen die Versionsfamilie V12 der SQL-Datenbank jetzt als allgemein verfügbar angekündigt ist. TDE für SQL-Datenbank ist nicht für die Verwendung in Produktionsdatenbanken vorgesehen, bis Microsoft sagt, dass TDE von der Vorschau auf GA heraufgestuft wird. Weitere Informationen zu SQL-Datenbank V12 finden Sie unter Neuigkeiten in der Azure SQL-Datenbank.

Informationen, die für SQL Server gelten

Nachdem sie gesichert wurde, kann die Datenbank mithilfe des richtigen Zertifikats wiederhergestellt werden. Weitere Informationen zu Zertifikaten finden Sie unter SQL Server Certificates and Asymmetric Keys.

Beim Aktivieren von TDE sollten Sie das Zertifikat und den dem Zertifikat zugeordneten privaten Schlüssel sofort sichern. Wenn das Zertifikat jemals nicht verfügbar ist oder Sie die Datenbank auf einem anderen Server wiederherstellen oder anfügen müssen, benötigen Sie Sicherungen sowohl des Zertifikats als auch des privaten Schlüssels, oder Sie können die Datenbank nicht öffnen. Das verschlüsselnde Zertifikat sollte beibehalten werden, auch wenn TDE nicht mehr in der Datenbank aktiviert ist. Obwohl die Datenbank nicht verschlüsselt ist, bleiben Teile des Transaktionsprotokolls möglicherweise weiterhin geschützt, und das Zertifikat kann für einige Vorgänge benötigt werden, bis die vollständige Sicherung der Datenbank ausgeführt wird. Ein Zertifikat, das sein Ablaufdatum überschritten hat, kann weiterhin zum Verschlüsseln und Entschlüsseln von Daten mit TDE verwendet werden.

Verschlüsselungshierarchie

Die folgende Abbildung zeigt die Architektur der TDE-Verschlüsselung. Nur die Elemente auf Datenbankebene (der Datenbankverschlüsselungsschlüssel und ALTER DATABASE-Teile sind bei Verwendung von TDE in SQL-Datenbank benutzerkonfigurierbar.

Zeigt die im Thema beschriebene Hierarchie an.

Verwenden der transparenten Datenverschlüsselung

Führen Sie die folgenden Schritte aus, um TDE zu verwenden.

Gilt für: SQL Server.
  • Erstellen Sie einen Hauptschlüssel

  • Erstellen oder beziehen Sie ein vom Hauptschlüssel geschütztes Zertifikat

  • Erstellen Sie einen Verschlüsselungsschlüssel für die Datenbank, und schützen Sie ihn durch das Zertifikat

  • Legen Sie fest, dass für die Datenbank Verschlüsselung verwendet wird

Im folgenden Beispiel wird die Verschlüsselung und Entschlüsselung der AdventureWorks2012 -Datenbank gezeigt, wobei ein auf dem Server MyServerCertinstalliertes Zertifikat verwendet wird.

USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>';
go
CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate';
go
USE AdventureWorks2012;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
ALTER DATABASE AdventureWorks2012
SET ENCRYPTION ON;
GO

Die Verschlüsselungs- und Entschlüsselungsvorgänge werden von SQL Server in geplanten Hintergrundthreads ausgeführt. Sie können den Status dieser Vorgänge mithilfe der Katalogansichten und dynamischen Verwaltungsansichten in der Liste anzeigen, die weiter unten in diesem Thema angezeigt wird.

Vorsicht

Sicherungsdateien von Datenbanken, für die TDE aktiviert wurde, werden ebenfalls mithilfe des Verschlüsselungsschlüssels für die Datenbank verschlüsselt. Darum muss bei der Wiederherstellung dieser Sicherungen das Zertifikat, das zum Verschlüsseln des Verschlüsselungsschlüssels für die Datenbank verwendet wurde, verfügbar sein. Dies bedeutet, dass Sie zusätzlich zum Sichern der Datenbank sicherstellen müssen, dass Sie Sicherungen der Serverzertifikate verwalten, um Datenverluste zu verhindern. Ist das Zertifikat nicht mehr verfügbar, kann es zu einem Datenverlust kommen. Weitere Informationen finden Sie unter SQL Server Certificates and Asymmetric Keys.

Befehle und Funktionen

Die TDE-Zertifikate müssen vom Datenbankmasterschlüssel verschlüsselt werden, damit sie von den folgenden SQL-Anweisungen akzeptiert werden können. Wenn sie nur mit einem kennwortgeschützt sind, werden sie von den Aussagen als Verschlüsseler abgelehnt.

Von Bedeutung

Wenn Sie die Zertifikate so ändern, dass sie kennwortgeschützt sind, nachdem sie von TDE verwendet wurden, kann die Datenbank nach einem Neustart nicht mehr darauf zugreifen.

Die folgende Tabelle enthält Links und Erläuterungen zu TDE-Befehlen und -Funktionen.

Befehl oder Funktion Zweck
ERSTELLEN EINES DATENBANKVERSCHLÜSSELUNGSSCHLÜSSELS (Transact-SQL) Erstellt einen Schlüssel, der zum Verschlüsseln einer Datenbank verwendet wird.
ALTER DATABASE ENCRYPTION KEY (Transact-SQL) Ändert den Schlüssel, der zum Verschlüsseln einer Datenbank verwendet wird.
DROP DATABASE ENCRYPTION KEY (Transact-SQL) Entfernt den Schlüssel, der zum Verschlüsseln einer Datenbank verwendet wurde.
ALTER DATABASE SET-Optionen (Transact-SQL) Erläutert die ALTER DATABASE Option, die zum Aktivieren von TDE verwendet wird.

Katalogansichten und dynamische Verwaltungsansichten

Die folgende Tabelle zeigt TDE-Katalogansichten und dynamische Verwaltungsansichten.

Katalogansicht oder dynamische Verwaltungsansicht Zweck
sys.databases (Transact-SQL) Katalogansicht, in der Datenbankinformationen angezeigt werden.
sys.certificates (Transact-SQL) Katalogansicht, in der die Zertifikate in einer Datenbank angezeigt werden.
sys.dm_database_encryption_keys (Transact-SQL) Dynamische Verwaltungsansicht, die Informationen zu den in einer Datenbank verwendeten Verschlüsselungsschlüsseln und den Verschlüsselungsstatus einer Datenbank bereitstellt.

Erlaubnisse

Jedes TDE-Feature und jeder Befehl verfügt über individuelle Berechtigungsanforderungen, die in den zuvor gezeigten Tabellen beschrieben werden.

Zum Anzeigen der metadaten, die mit TDE verbunden sind, ist die VIEW DEFINITION-Berechtigung für das Zertifikat erforderlich.

Überlegungen

Während eine erneute Verschlüsselungsüberprüfung für einen Datenbankverschlüsselungsvorgang ausgeführt wird, sind Wartungsvorgänge für die Datenbank deaktiviert. Sie können die Einstellung für den Einzelbenutzermodus für die Datenbank verwenden, um den Wartungsvorgang auszuführen. Weitere Informationen finden Sie unter Festlegen einer Datenbank auf den Einzelbenutzermodus.

Sie finden den Status der Datenbankverschlüsselung mithilfe der sys.dm_database_encryption_keys dynamischen Verwaltungsansicht. Weitere Informationen finden Sie im Abschnitt "Katalogansichten und dynamische Verwaltungsansichten" weiter oben in diesem Thema.

In TDE werden alle Dateien und Dateigruppen in der Datenbank verschlüsselt. Wenn Dateigruppen in einer Datenbank schreibgeschützt markiert sind, schlägt der Datenbankverschlüsselungsvorgang fehl.

Wenn eine Datenbank in der Datenbankspiegelung oder beim Protokollversand verwendet wird, werden beide Datenbanken verschlüsselt. Die Protokolltransaktionen werden verschlüsselt, wenn sie zwischen ihnen gesendet werden.

Von Bedeutung

Alle neuen Volltextindizes werden verschlüsselt, wenn eine Datenbank für die Verschlüsselung festgelegt ist. Zuvor erstellte Volltextindizes werden während des Upgrades importiert und befinden sich nach dem Laden der Daten in SQL Server in TDE. Das Aktivieren eines Volltextindexes für eine Spalte kann dazu führen, dass die Daten dieser Spalte während eines Volltextindizierungsscans in Klartext auf den Datenträger geschrieben werden. Es wird empfohlen, keinen Volltextindex für vertrauliche verschlüsselte Daten zu erstellen.

Verschlüsselte Daten komprimieren deutlich weniger als gleichwertige unverschlüsselte Daten. Wenn TDE zum Verschlüsseln einer Datenbank verwendet wird, kann die Sicherungskomprimierung den Sicherungsspeicher nicht erheblich komprimieren. Daher wird die gemeinsame Verwendung von TDE und Sicherungskomprimierung nicht empfohlen.

Einschränkungen

Die folgenden Vorgänge sind während der anfänglichen Datenbankverschlüsselung, Schlüsseländerung oder Datenbankentschlüsselung nicht zulässig:

  • Entfernen einer Datei aus einer Dateigruppe in der Datenbank

  • Ablegen der Datenbank

  • Datenbank offline nehmen

  • Trennen einer Datenbank

  • Übergang einer Datenbank oder Dateigruppe in einen READ ONLY-Zustand

Die folgenden Vorgänge sind während der CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY oder ALTER DATABASE...SET ENCRYPTION-Anweisungen nicht zulässig.

  • Entfernen einer Datei aus einer Dateigruppe in der Datenbank.

  • Ablegen der Datenbank.

  • Die Datenbank offline nehmen.

  • Trennen einer Datenbank.

  • Umwandeln einer Datenbank oder Dateigruppe in einen schreibgeschützten Zustand.

  • Verwenden eines ALTER DATABASE-Befehls.

  • Starten einer Datenbank- oder Datenbankdateisicherung.

  • Starten einer Datenbank- oder Datenbankdateiwiederherstellung.

  • Erstellen einer Momentaufnahme.

Durch die folgenden Vorgänge oder Bedingungen werden die Befehle CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY oder ALTER DATABASE...SET ENCRYPTION verhindert.

  • Die Datenbank ist schreibgeschützt oder verfügt über schreibgeschützte Dateigruppen.

  • Ein ALTER DATABASE-Befehl wird ausgeführt.

  • Jede Datensicherung wird ausgeführt.

  • Die Datenbank befindet sich in einer Offline- oder Wiederherstellungsbedingung.

  • Eine Momentaufnahme wird gerade erstellt.

  • Datenbankwartungsaufgaben.

Beim Erstellen von Datenbankdateien ist die Sofortige Dateiinitialisierung nicht verfügbar, wenn TDE aktiviert ist.

Um den Datenbankverschlüsselungsschlüssel mit einem asymmetrischen Schlüssel zu verschlüsseln, muss sich der asymmetrische Schlüssel auf einem erweiterbaren Schlüsselverwaltungsanbieter befinden.

Transparente Datenverschlüsselung und Transaktionsprotokolle

Das Aktivieren der Verwendung von TDE für eine Datenbank bewirkt das "Auf-Null-Setzen" des verbleibenden Teils des virtuellen Transaktionsprotokolls, um das nächste virtuelle Transaktionsprotokoll zu erzwingen. Dadurch wird sichergestellt, dass kein Klartext in den Transaktionsprotokollen verbleibt, nachdem die Datenbank für die Verschlüsselung festgelegt wurde. Sie finden den Status der Protokolldateiverschlüsselung, indem Sie die encryption_state Spalte in der sys.dm_database_encryption_keys Ansicht anzeigen, wie in diesem Beispiel:

USE AdventureWorks2012;
GO
/* The value 3 represents an encrypted state 
   on the database and transaction logs. */
SELECT *
FROM sys.dm_database_encryption_keys
WHERE encryption_state = 3;
GO

Weitere Informationen zur SQL Server-Protokolldateiarchitektur finden Sie im Transaktionsprotokoll (SQL Server).

Alle Daten, die vor einer Änderung des Datenbankverschlüsselungsschlüssels in das Transaktionsprotokoll geschrieben wurden, werden mit dem vorherigen Datenbankverschlüsselungsschlüssel verschlüsselt.

Nachdem ein Datenbankverschlüsselungsschlüssel zweimal geändert wurde, muss eine Protokollsicherung ausgeführt werden, bevor der Datenbankverschlüsselungsschlüssel erneut geändert werden kann.

Transparente Datenverschlüsselung und die tempdb-Systemdatenbank

Die tempdb-Systemdatenbank wird verschlüsselt, wenn eine andere Datenbank in der Instanz von SQL Server mithilfe von TDE verschlüsselt wird. Dies kann einen Leistungseffekt für unverschlüsselte Datenbanken in derselben Sql Server-Instanz haben. Weitere Informationen zur tempdb-Systemdatenbank finden Sie in der tempdb-Datenbank.

Transparente Datenverschlüsselung und -replikation

Die Replikation repliziert nicht automatisch Daten aus einer TDE-fähigen Datenbank in verschlüsselter Form. Sie müssen TDE separat aktivieren, wenn Sie die Verteilungs- und Abonnentendatenbanken schützen möchten. Die Snapshot-Replikation sowie die anfängliche Datenverteilung für die Transaktions- und Merge-Replikation können Daten in unverschlüsselten Zwischendateien speichern, zum Beispiel in den bcp-Dateien. Während der Transaktions- oder Zusammenführungsreplikation kann die Verschlüsselung aktiviert werden, um den Kommunikationskanal zu schützen. Weitere Informationen finden Sie unter Aktivieren von verschlüsselten Verbindungen zur Datenbank-Engine (SQL Server-Konfigurations-Manager).

Transparente Datenverschlüsselung und FILESTREAM-DATEN

FILESTREAM-Daten werden auch dann nicht verschlüsselt, wenn TDE aktiviert ist.

Transparente Datenverschlüsselung und Pufferpoolerweiterung

Dateien im Zusammenhang mit der Pufferpoolerweiterung (BPE) werden nicht verschlüsselt, wenn die Datenbank mit TDE verschlüsselt wird. Sie müssen Verschlüsselungstools auf Dateisystemebene wie Bitlocker oder EFS für BPE-bezogene Dateien verwenden.

Transparente Datenverschlüsselung und In-Memory OLTP

TDE kann für eine Datenbank mit In-Memory OLTP-Objekten aktiviert werden. In-Memory OLTP-Protokolleinträge werden verschlüsselt, wenn TDE aktiviert ist. Daten in einer MEMORY_OPTIMIZED_DATA Dateigruppe werden nicht verschlüsselt, wenn TDE aktiviert ist.

Siehe auch

Verschieben einer TDE-geschützten Datenbank auf einen anderen SQL ServerAktivieren von TDE mithilfe von EKMTransparente Datenverschlüsselung mit Azure SQL-DatenbankSQL Server-VerschlüsselungSQL Server- und Datenbankverschlüsselungsschlüssel (Datenbankmodul)Security Center für SQL Server-Datenbankmodul und Azure SQL-DatenbankFILESTREAM (SQL Server)