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.
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.
Von Bedeutung
TDE bietet keine Verschlüsselung über Kommunikationskanäle hinweg. Weitere Informationen zum Verschlüsseln von Daten über Kommunikationskanäle hinweg finden Sie unter Aktivieren von verschlüsselten Verbindungen mit dem Datenbankmodul (SQL Server Configuration Manager).For more information about how to encrypt data across communication channels, see Enable Encrypted Connections to the Database Engine (SQL Server Configuration Manager).
Verwandte Themen:
Ü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.
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)