TDE (Transparent Data Encryption)Transparent Data Encryption (TDE)

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database JaVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceYesVerwaltete Azure SQL-InstanzAzure SQL Managed Instance JaAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics JaParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data WarehouseAnwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database JaVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceYesVerwaltete Azure SQL-InstanzAzure SQL Managed Instance JaAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics JaParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

Transparente Datenverschlüsselung (Transparent Data Encryption, TDE) verschlüsselt SQL ServerSQL Server-, Azure SQL-DatenbankAzure SQL Database- und Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse)-Datendateien.Transparent Data Encryption (TDE) encrypts SQL ServerSQL Server, Azure SQL-DatenbankAzure SQL Database, and Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse) data files. Diese Verschlüsselung ist auch als Verschlüsselung von ruhenden Daten bekannt.This encryption is known as encrypting data at rest.

Sie können die folgenden Vorkehrungen treffen, um eine Datenbank zu sichern:To help secure a database, you can take precautions like:

  • Entwerfen eines sicheren SystemsDesigning a secure system.
  • Verschlüsseln vertraulicher RessourcenEncrypting confidential assets.
  • Erstellen einer Firewall für die DatenbankserverBuilding a firewall around the database servers.

Jedoch kann eine böswillige Partei, die physische Medien wie Datenträger oder Sicherungsbänder stiehlt, die Datenbank wiederherstellen oder anfügen und ihre Daten durchsuchen.But a malicious party who steals physical media like drives or backup tapes can restore or attach the database and browse its data.

Eine Lösung dieses Problems besteht darin, die sensiblen Daten in einer Datenbank zu verschlüsseln und ein Zertifikat zum Schützen der Schlüssel zu verwenden, die die Daten verschlüsseln.One solution is to encrypt sensitive data in a database and use a certificate to protect the keys that encrypt the data. Mit dieser Lösung wird verhindert, dass Personen ohne die Schlüssel die Daten verwenden können.This solution prevents anyone without the keys from using the data. Diese Art von Schutz müssen Sie jedoch im Voraus planen.But you must plan this kind of protection in advance.

TDE führt die E/A-Verschlüsselung und -Entschlüsselung von Daten- und Protokolldateien in Echtzeit durch.TDE does real-time I/O encryption and decryption of data and log files. Die Verschlüsselung nutzt einen DEK (Database Encryption Key, Datenbankverschlüsselungsschlüssel).The encryption uses a database encryption key (DEK). Der Datenbankstartdatensatz speichert den Schlüssel, damit er für die Wiederherstellung verfügbar ist.The database boot record stores the key for availability during recovery. Der DEK ist ein symmetrischer Schlüssel.The DEK is a symmetric key. Dieser wird von einem Zertifikat, das in der Masterdatenbank des Servers gespeichert wird, oder von einem asymmetrischen Schlüssel geschützt, der von einem EKM-Modul geschützt wird.It's secured by a certificate that the server's master database stores or by an asymmetric key that an EKM module protects.

TDE schützt ruhende Daten, also die Daten- und Protokolldateien.TDE protects data at rest, which is the data and log files. Sie entspricht den in vielen Branchen etablierten Gesetzen, Bestimmungen und Richtlinien.It lets you follow many laws, regulations, and guidelines established in various industries. Dadurch können Softwareentwickler Daten mithilfe der AES- und 3DES-Verschlüsselungsalgorithmen verschlüsseln, ohne vorhandene Anwendungen ändern zu müssen.This ability lets software developers encrypt data by using AES and 3DES encryption algorithms without changing existing applications.

Informationen zu TDEAbout TDE

Die Verschlüsselung der Datenbankdatei erfolgt auf Seitenebene.Encryption of a database file is done at the page level. In einer verschlüsselten Datenbank werden die Seiten verschlüsselt, bevor sie auf den Datenträger geschrieben werden, und entschlüsselt, wenn sie in den Arbeitsspeicher gelesen werden.The pages in an encrypted database are encrypted before they're written to disk and are decrypted when read into memory. TDE erhöht nicht die Größe der verschlüsselten Datenbank.TDE doesn't increase the size of the encrypted database.

Informationen zu SQL-DatenbankSQL DatabaseInformation applicable to SQL-DatenbankSQL Database

Wenn Sie TDE mit SQL-DatenbankSQL Database V12 verwenden, erstellt SQL-DatenbankSQL Database automatisch das Zertifikat auf Serverebene, das in der Masterdatenbank gespeichert wird.When you use TDE with SQL-DatenbankSQL Database V12, SQL-DatenbankSQL Database automatically creates for you the server-level certificate stored in the master database. Beim Verschieben einer TDE-Datenbank nach SQL-DatenbankSQL Database muss die Datenbank für den Verschiebevorgang nicht entschlüsselt werden.To move a TDE database on SQL-DatenbankSQL Database, you don't have to decrypt the database for the move operation. Weitere Informationen zur Verwendung von TDE mit SQL-DatenbankSQL Database finden Sie unter Transparente Datenverschlüsselung in Azure SQL-Datenbank.For more information on using TDE with SQL-DatenbankSQL Database, see Transparent Data Encryption with Azure SQL Database.

Informationen zu SQL ServerSQL ServerInformation applicable to SQL ServerSQL Server

Nachdem Sie eine Datenbank gesichert haben, können Sie diese mithilfe des richtigen Zertifikats wiederherstellen.After you secure a database, you can restore it by using the correct certificate. Weitere Informationen zu Zertifikaten finden Sie unter SQL Server Certificates and Asymmetric Keys.For more information about certificates, see SQL Server Certificates and Asymmetric Keys.

Sobald Sie TDE aktiviert haben, sollten Sie umgehend das Zertifikat und den zugehörigen privaten Schlüssel sichern.After you enable TDE, immediately back up the certificate and its associated private key. Wenn das Zertifikat nicht mehr verfügbar ist oder Sie die Datenbank auf einem anderen Server wiederherstellen oder anfügen, benötigen Sie Sicherungen des Zertifikats und des privaten Schlüssels.If the certificate becomes unavailable, or if you restore or attach the database on another server, you need backups of the certificate and private key. Andernfalls können Sie die Datenbank nicht öffnen.Otherwise, you can't open the database.

Behalten Sie das verschlüsselnde Zertifikat, selbst wenn Sie TDE für die Datenbank deaktiviert haben.Keep the encrypting certificate even if you've disabled TDE on the database. Obwohl die Datenbank nicht verschlüsselt wird, werden Teile des Transaktionsprotokolls möglicherweise weiterhin geschützt.Although the database isn't encrypted, parts of the transaction log might remain protected. Möglicherweise benötigen Sie das Zertifikat auch für einige Vorgänge, bis Sie eine vollständige Datenbanksicherung durchgeführt haben.You also might need the certificate for some operations until you do a full database backup.

Sie können ein Zertifikat, dessen Ablaufdatum überschritten wurde, weiterhin zum Verschlüsseln und Entschlüsseln von Daten mit TDE verwenden.You can still use a certificate that exceeds its expiration date to encrypt and decrypt data with TDE.

VerschlüsselungshierarchieEncryption hierarchy

Die folgende Abbildung zeigt die Architektur der TDE-Verschlüsselung.The following illustration shows the architecture of TDE encryption. Nur die Datenbankebenenelemente (der Datenbankverschlüsselungsschlüssel und die ALTER DATABASE-Teile) können bei der Verwendung von TDE in SQL-DatenbankSQL Database vom Benutzer konfiguriert werden.Only the database-level items (the database encryption key and ALTER DATABASE portions) are user-configurable when you use TDE on SQL-DatenbankSQL Database.

TDE-Architektur

Aktivieren von TDEEnable TDE

Führen Sie folgende Schritte aus, um TDE zu verwenden:To use TDE, follow these steps.

Gilt für: SQL ServerSQL Server.Applies to: SQL ServerSQL Server.

  1. Erstellen Sie einen Hautschlüssel.Create a master key.

  2. Erstellen oder beziehen Sie ein vom Hauptschlüssel geschütztes Zertifikat.Create or obtain a certificate protected by the master key.

  3. Erstellen Sie einen Verschlüsselungsschlüssel für die Datenbank, und schützen Sie ihn mithilfe des Zertifikats.Create a database encryption key and protect it by using the certificate.

  4. Legen Sie die Verschlüsselung für die Datenbank fest.Set the database to use encryption.

Im folgenden Beispiel wird die Verschlüsselung und Entschlüsselung der AdventureWorks2012-Datenbank mithilfe eines Zertifikats namens MyServerCert veranschaulicht, das auf dem Server installiert ist.The following example shows encryption and decryption of the AdventureWorks2012 database using a certificate named MyServerCert that's installed on the server.

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 in von SQL ServerSQL Servergeplanten Hintergrundthreads ausgeführt.The encryption and decryption operations are scheduled on background threads by SQL ServerSQL Server. Verwenden Sie die Katalogsichten und dynamischen Verwaltungssichten der Tabelle, die im späteren Verlauf dieses Artikels gezeigt wird, um den Status dieser Vorgänge anzuzeigen.To view the status of these operations, use the catalog views and dynamic management views in the table that appears later in this article.

Achtung

Sicherungsdateien für Datenbanken, für die TDE aktiviert wurde, werden ebenfalls mit dem Datenbankverschlüsselungsschlüssel verschlüsselt.Backup files for databases that have TDE enabled are also encrypted with the database encryption key. 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.As a result, when you restore these backups, the certificate that protects the database encryption key must be available. Stellen Sie daher zusätzlich zum Sichern der Datenbank sicher, dass Sie Sicherungen der Serverzertifikate anlegen.Therefore, in addition to backing up the database, make sure to maintain backups of the server certificates. Wenn die Zertifikate nicht mehr verfügbar sind, kann es zu Datenverlust kommen.Data loss results if the certificates are no longer available.

Weitere Informationen finden Sie unter SQL Server Certificates and Asymmetric Keys.For more information, see SQL Server Certificates and Asymmetric Keys.

Befehle und FunktionenCommands and functions

Damit die folgenden Anweisungen TDE-Zertifikate akzeptieren, verwenden Sie einen Datenbankhauptschlüssel, um sie zu verschlüsseln.For the following statements to accept TDE certificates, use a database master key to encrypt them. Wenn Sie diese nur mit einem Kennwort verschlüsseln, lehnen die Anweisungen die Verschlüsselungen ab.If you encrypt them by password only, the statements reject them as encryptors.

Wichtig

Wenn Sie das Zertifikatkennwort schützen, nachdem es von TDE verwendet wird, kann nach einem Neustart nicht auf die Datenbank zugegriffen werden.If you make the certificates password protected after TDE uses them, the database becomes inaccessible after a restart.

Die folgende Tabelle bietet Links und Erläuterungen zu den Befehlen und Funktionen von TDE:The following table provides links and explanations of TDE commands and functions:

Befehl oder FunktionCommand or function ZweckPurpose
CREATE DATABASE ENCRYPTION KEY (Transact-SQL)CREATE DATABASE ENCRYPTION KEY (Transact-SQL) Erstellt einen Schlüssel, der die Datenbank verschlüsseltCreates a key that encrypts a database
ALTER DATABASE ENCRYPTION KEY (Transact-SQL)ALTER DATABASE ENCRYPTION KEY (Transact-SQL) Ändert den Schlüssel, der die Datenbank verschlüsseltChanges the key that encrypts a database
DROP DATABASE ENCRYPTION KEY (Transact-SQL)DROP DATABASE ENCRYPTION KEY (Transact-SQL) Entfernt den Schlüssel, der die Datenbank verschlüsseltRemoves the key that encrypts a database
ALTER DATABASE SET-Optionen (Transact-SQL)ALTER DATABASE SET Options (Transact-SQL) Erklärt die ALTER DATABASE-Option, mit der TDE aktiviert wirdExplains the ALTER DATABASE option that is used to enable TDE

Katalogsichten und dynamische VerwaltungssichtenCatalog views and dynamic management views

In der folgenden Tabelle werden die Katalogsichten und die dynamischen Verwaltungssichten von TDE erläutert.The following table shows TDE catalog views and dynamic management views.

Katalogsicht oder dynamische VerwaltungssichtCatalog view or dynamic management view ZweckPurpose
sys.databases (Transact-SQL)sys.databases (Transact-SQL) Katalogsicht, die Datenbankinformationen anzeigtCatalog view that displays database information
sys.certificates (Transact-SQL)sys.certificates (Transact-SQL) Katalogsicht, die die Zertifikate in einer Datenbank anzeigtCatalog view that shows the certificates in a database
sys.dm_database_encryption_keys (Transact-SQL)sys.dm_database_encryption_keys (Transact-SQL) Dynamische Verwaltungssicht, die Informationen zu den Verschlüsselungsschlüsseln einer Datenbank und dem Zustand der Verschlüsselung bereitstelltDynamic management view that provides information about a database's encryption keys and state of encryption

BerechtigungenPermissions

Jede Funktion und jeder Befehl von TDE erfordert bestimmte Berechtigungen, die in den zuvor gezeigten Tabellen beschrieben wurden.Each TDE feature and command has individual permission requirements as described in the tables shown earlier.

Zum Anzeigen der Metadaten, die im Zusammenhang mit TDE stehen, ist die VIEW DEFINITION-Berechtigung für ein Zertifikat erforderlich.Viewing the metadata involved with TDE requires the VIEW DEFINITION permission on a certificate.

ÜberlegungenConsiderations

Während eine erneute Verschlüsselungsprüfung für einen Datenbankverschlüsselungsvorgang ausgeführt wird, sind Wartungsvorgänge für die Datenbank deaktiviert.While a re-encryption scan for a database encryption operation is in progress, maintenance operations to the database are disabled. Sie können den Einzelbenutzermodus für die Datenbank verwenden, um Wartungsvorgänge durchzuführen.You can use the single-user mode setting for the database to do maintenance operations. Weitere Informationen finden Sie unter So legen Sie den Einzelbenutzermodus für eine Datenbank fest.For more information, see Set a Database to Single-user Mode.

Verwenden Sie die dynamische Verwaltungssicht „sys.dm_database_encryption_keys“, um den Zustand der Datenbankverschlüsselung zu ermitteln.Use the sys.dm_database_encryption_keys dynamic management view to find the state of database encryption. Weitere Informationen finden Sie im Abschnitt „Katalogsichten und dynamische Verwaltungssichten“ weiter oben in diesem Artikel.For more information, see the "Catalog views and dynamic management views" section earlier in this article.

Bei TDE werden alle Dateien und Dateigruppen in einer Datenbank verschlüsselt.In TDE, all files and filegroups in a database are encrypted. Wenn eine Dateigruppe in einer Datenbank als READ ONLY gekennzeichnet ist, schlägt der Datenbankverschlüsselungsvorgang fehl.If any filegroup in a database is marked READ ONLY, the database encryption operation fails.

Wenn Sie eine Datenbank bei der Datenbankspiegelung oder beim Protokollversand verwenden, werden beide Datenbanken verschlüsselt.If you use a database in database mirroring or log shipping, both databases are encrypted. Die Protokolltransaktionen werden für die Übertragung zwischen den Datenbanken verschlüsselt.The log transactions are encrypted when sent between them.

Wichtig

Volltextindizes werden verschlüsselt, wenn für eine Datenbank die Verschlüsselung festgelegt ist.Full-text indexes are encrypted when a database is set for encryption. Solche Indizes, die in einer SQL Server-Version vor SQL Server 2008 erstellt wurden, werden von SQL Server 2008 oder höher in die Datenbank importiert und von TDE verschlüsselt.Such indexes created in a SQL Server version earlier than SQL Server 2008 are imported into the database by SQL Server 2008 or later and are encrypted by TDE.

Tipp

Verwenden Sie SQL Server Audit oder SQL-Datenbanküberwachung, um die Veränderungen im TDE-Status einer Datenbank zu überwachen.To monitor changes in the TDE status of a database, use SQL Server Audit or SQL Database auditing. Bei SQL Server wird TDE unter der Überwachungsaktionsgruppe DATABASE_CHANGE_GROUP nachverfolgt, die Sie in SQL Server Audit-Aktionsgruppen und -Aktionen finden können.For SQL Server, TDE is tracked under the audit action group DATABASE_CHANGE_GROUP, which you can find in SQL Server Audit Action Groups and Actions.

BeschränkungenRestrictions

Die folgende Vorgänge sind während der ersten Datenbankverschlüsselung, einer Schlüsseländerung oder der Datenbankentschlüsselung nicht erlaubt:The following operations are disallowed during initial database encryption, key change, or database decryption:

  • Löschen einer Datei aus einer Dateigruppe in einer DatenbankDropping a file from a filegroup in a database

  • Löschen einer DatenbankDropping a database

  • Offlineschalten einer DatenbankTaking a database offline

  • Trennen einer DatenbankDetaching a database

  • Versetzen einer Datenbank oder einer Dateigruppe in den READ ONLY-ZustandTransitioning a database or filegroup into a READ ONLY state

Die folgenden Vorgänge sind während der Ausführung der Anweisungen CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY und ALTER DATABASE...SET ENCRYPTION nicht erlaubt:The following operations are disallowed during the CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY, and ALTER DATABASE...SET ENCRYPTION statements:

  • Löschen einer Datei aus einer Dateigruppe in einer DatenbankDropping a file from a filegroup in a database

  • Löschen einer DatenbankDropping a database

  • Offlineschalten einer DatenbankTaking a database offline

  • Trennen einer DatenbankDetaching a database

  • Versetzen einer Datenbank oder einer Dateigruppe in den READ ONLY-ZustandTransitioning a database or filegroup into a READ ONLY state

  • Verwenden eines ALTER DATABASE-BefehlsUsing an ALTER DATABASE command

  • Starten einer Datenbank- oder DatenbankdateisicherungStarting a database or database-file backup

  • Starten einer Datenbank- oder DatenbankdateiwiederherstellungStarting a database or database-file restore

  • Erstellen einer MomentaufnahmeCreating a snapshot

Die folgenden Vorgänge oder Bedingungen verhindern die Anweisungen CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY und ALTER DATABASE...SET ENCRYPTION:The following operations or conditions prevent the CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY, and ALTER DATABASE...SET ENCRYPTION statements:

  • Eine Datenbank ist schreibgeschützt oder enthält schreibgeschützte Dateigruppen.A database is read-only or has read-only filegroups.

  • Ein ALTER DATABASE-Befehl wird ausgeführt.An ALTER DATABASE command is running.

  • Eine Datensicherung wird ausgeführt.A data backup is running.

  • Eine Datenbank ist offline geschaltet oder wird wiederhergestellt.A database is in an offline or restore condition.

  • Eine Momentaufnahme wird ausgeführt.A snapshot is in progress.

  • Es werden Datenbankwartungstasks ausgeführt.Database maintenance tasks are running.

Wenn TDE aktiviert ist, ist die Dateiinitialisierung beim Erstellen von Datenbankdateien nicht verfügbar.When database files are created, instant file initialization is unavailable when TDE is enabled.

Der asymmetrische Schlüssel muss sich auf einem erweiterbaren Schlüsselverwaltungsanbieter befinden, um einen Datenbankverschlüsselungsschlüssel mit einem asymmetrischen Schlüssel zu verschlüsseln.To encrypt a database encryption key with an asymmetric key, the asymmetric key must be on an extensible key-management provider.

TDE-ÜberprüfungTDE scan

SQL ServerSQL Server muss einen Verschlüsselungsscan durchführen, damit TDE auf einer Datenbank aktiviert werden kann.To enable TDE on a database, SQL ServerSQL Server must do an encryption scan. Der Scan liest alle Seiten der Datendateien in den Pufferpool und schreib die verschlüsselten Seiten dann wieder auf den Datenträger.The scan reads each page from the data files into the buffer pool and then writes the encrypted pages back out to disk.

Damit Sie über mehr Kontrolle über den Verschlüsselungsscan verfügen, wurde mit SQL Server 2019 (15.x)SQL Server 2019 (15.x) der TDE-Scan eingeführt, der über eine Syntax zum Anhalten und Fortsetzen verfügt.To give you more control over the encryption scan, SQL Server 2019 (15.x)SQL Server 2019 (15.x) introduces TDE scan, which has a suspend and resume syntax. Wenn die Arbeitsauslastung des Systems sehr hoch ist oder während geschäftskritischen Zeiten, können Sie den Scan pausieren und später fortsetzen.You can pause the scan while the workload on the system is heavy or during business-critical hours and then resume the scan later.

Verwenden Sie die folgende Syntax, um den TDE-Verschlüsselungsscan anzuhalten:Use the following syntax to pause the TDE encryption scan:

ALTER DATABASE <db_name> SET ENCRYPTION SUSPEND;

Auf ähnliche Weise können Sie den TDE-Verschlüsselungsscan mithilfe der folgenden Syntax fortsetzen:Similarly, use the following syntax to resume the TDE encryption scan:

ALTER DATABASE <db_name> SET ENCRYPTION RESUME;

Die Spalte „encryption_scan_state“ wurde zur dynamischen Verwaltungssicht „sys.dm_database_encryption_keys“ hinzugefügt.The encryption_scan_state column has been added to the sys.dm_database_encryption_keys dynamic management view. Diese zeigt den aktuellen Zustand des Verschlüsselungsscans an.It shows the current state of the encryption scan. Außerdem wurde eine neue Spalte namens „encryption_scan_modify_date“ hinzugefügt, die das Datum und die Uhrzeit der letzten Änderung des Status des Verschlüsselungsscans enthält.There's also a new column called encryption_scan_modify_date, which contains the date and time of the last encryption-scan state change.

Wenn die SQL ServerSQL Server-Instanz neu gestartet wird, während ihr Verschlüsselungsscan angehalten ist, wird beim Start eine Meldung im Fehlerprotokoll protokolliert.If the SQL ServerSQL Server instance restarts while its encryption scan is suspended, a message is logged in the error log on startup. Die Meldung gibt an, dass ein bestehender Scan angehalten wurde.The message indicates that an existing scan has been paused.

TDE und TransaktionsprotokolleTDE and transaction logs

Wenn eine Datenbank TDE verwendet, wird der restliche Teil des aktuellen virtuellen Transaktionsprotokolls entfernt.Letting a database use TDE removes the remaining part of the current virtual transaction log. Die Entfernung erzwingt die Erstellung des nächsten Transaktionsprotokolls.The removal forces creation of the next transaction log. Dieses Verhalten gewährleistet, dass kein Klartext in en Protokollen verbleibt, nachdem die Datenbank für die Verschlüsselung eingerichtet wurde.This behavior guarantees that no clear text is left in the logs after the database is set for encryption.

Den Status der Protokolldateiverschlüsselung finden Sie wie im folgenden Beispiel gezeigt in der encryption_state-Spalte der sys.dm_database_encryption_keys-Sicht:To find the status of log-file encryption, see the encryption_state column in the sys.dm_database_encryption_keys view, as in this example:

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 ServerSQL Server-Protokolldateiarchitektur finden Sie unter Das Transaktionsprotokoll (SQL Server).For more information about the SQL ServerSQL Server log-file architecture, see The Transaction Log (SQL Server).

Bevor ein Datenbankverschlüsselungsschlüssel geändert wird, verschlüsselt der vorherige Datenbankverschlüsselungsschlüssel alle Daten, die in das Transaktionsprotokoll geschrieben werden.Before a database encryption key changes, the previous database encryption key encrypts all data written to the transaction log.

Wenn Sie einen Datenbankverschlüsselungsschlüssel zweimal ändern, müssen Sie eine Protokollsicherung anlegen, bevor Sie den Datenbankverschlüsselungsschlüssel wieder ändern können.If you change a database encryption key twice, you must do a log backup before you can change the database encryption key again.

TDE und die tempdb-SystemdatenbankTDE and the tempdb system database

Die tempdb-Systemdatenbank wird verschlüsselt, wenn eine beliebige andere Datenbank in der SQL ServerSQL Server-Instanz mithilfe von TDE verschlüsselt wird.The tempdb system database is encrypted if any other database on the SQL ServerSQL Server instance is encrypted by using TDE. Diese Verschlüsselung kann sich auf die Leistung unverschlüsselter Datenbanken der gleichen SQL ServerSQL Server-Instanz auswirken.This encryption might have a performance effect for unencrypted databases on the same SQL ServerSQL Server instance. Weitere Informationen über die tempdb-Systemdatenbank finden Sie unter tempdb-Datenbank.For more information about the tempdb system database, see tempdb Database.

TDE und ReplikationTDE and replication

Daten aus einer TDE-aktivierten Datenbank werden bei der Replikation nicht automatisch in einer verschlüsselten Form repliziert.Replication doesn't automatically replicate data from a TDE-enabled database in an encrypted form. Sie müssen TDE separat aktivieren, wenn Sie die Verteilungs- und Abonnentendatenbanken schützen möchten.Separately enable TDE if you want to protect distribution and subscriber databases.

Die Momentaufnahmereplikation kann Daten in nicht verschlüsselten Zwischendateien wie BCP-Dateien speichern.Snapshot replication can store data in unencrypted intermediate files like BCP files. Dies gilt auch für die erste Datenverteilung für Transaktionsdaten und die Mergereplikation.The initial data distribution for transactional and merge replication can too. Während einer solchen Replikation können Sie die Verschlüsselung aktivieren, um den Kommunikationskanal zu schützen.During such replication, you can enable encryption to protect the communication channel.

Weitere Informationen finden Sie unter Aktivieren von verschlüsselten Verbindungen zur Datenbank-Engine (SQL Server-Konfigurations-Manager).For more information, see Enable Encrypted Connections to the Database Engine (SQL Server Configuration Manager).

TDE und Always OnTDE and Always On

Sie können einer Always On-Verfügbarkeitsgruppe eine verschlüsselte Datenbank hinzufügen.You can add an encrypted database to an Always On availability group.

Erstellen Sie den Hauptschlüssel und Zertifikate oder einen asymmetrischen Schlüssel (EKM) auf allen sekundären Replikaten, um die Datenbanken zu verschlüsseln, die Mitglied einer Verfügbarkeitsgruppe sind, bevor Sie den Datenbankverschlüsselungsschlüssel auf dem primären Replikat erstellen.To encrypt databases that are part of an availability group, create the master key and certificates, or asymmetric key (EKM) on all secondary replicas before creating the database encryption key on the primary replica.

Wenn zum Schutz des Datenbankverschlüsselungsschlüssels (DEK) ein Zertifikat verwendet wird, sichern Sie das auf dem primären Replikat erstellte Zertifikat, und erstellen Sie dann das Zertifikat aus einer Datei auf allen sekundären Replikaten, bevor Sie den Datenbankverschlüsselungsschlüssel auf dem primären Replikat erstellen.If a certificate is used to protect the database encryption key (DEK), back up the certificate created on the primary replica, and then create the certificate from a file on all secondary replicas before creating the database encryption key on the primary replica.

TDE und FILESTREAM-DatenTDE and FILESTREAM data

FILESTREAM-Daten werden nicht verschlüsselt, selbst wenn Sie TDE aktivieren.FILESTREAM data isn't encrypted even when you enable TDE.

Entfernen von TDERemove TDE

Mithilfe der ALTER DATABASE-Anweisung können Sie die Verschlüsselung einer Datenbank entfernen.Remove encryption from the database by using the ALTER DATABASE statement.

ALTER DATABASE <db_name> SET ENCRYPTION OFF;

Der Status der Datenbank wird mit der dynamischen Verwaltungssicht sys.dm_database_encryption_keys angezeigt.To view the state of the database, use the sys.dm_database_encryption_keys dynamic management view.

Warten Sie, bis die Entschlüsselung abgeschlossen ist, bevor Sie den Datenbankverschlüsselungsschlüssel mithilfe von DROP DATABASE ENCRYPTION KEY entfernen.Wait for decryption to finish before removing the database encryption key by using DROP DATABASE ENCRYPTION KEY.

Wichtig

Sichern Sie Hauptschlüssel und Zertifikat, die für TDE verwendet werden, an einem sicheren Speicherort.Back up the master key and certificate that are used for TDE to a safe location. Der Hauptschlüssel und das Zertifikat sind erforderlich, um Sicherungen wiederherzustellen, die erstellt wurden, solange die Datenbank mit TDE verschlüsselt war.The master key and certificate are required to restore backups that were taken when the database was encrypted with TDE. Nach Entfernung des Datenbankverschlüsselungsschlüssels erstellen Sie eine Protokollsicherung und dann eine neue vollständige Sicherung der verschlüsselten Datenbank.After you remove the database encryption key, take a log backup followed by a fresh full backup of the decrypted database.

TDE und PufferpoolerweiterungTDE and buffer pool extension

Wenn Sie eine Datenbank mit TDE verschlüsseln, werden Dateien, die mit der Pufferpoolerweiterung zusammenhängen, nicht verschlüsselt.When you encrypt a database using TDE, files related to buffer pool extension (BPE) aren't encrypted. Verwenden Sie für diese Dateien Verschlüsselungstools wie BitLocker oder EFS auf Dateisystemebene.For those files, use encryption tools like BitLocker or EFS at the file-system level.

TDE und In-Memory-OLTPTDE and In-Memory OLTP

Sie können TDE für eine Datenbank aktivieren, die über In-Memory OLTP-Objekte verfügt.You can enable TDE on a database that has In-Memory OLTP objects. In-Memory-OLTP-Protokolldatensätze in SQL Server 2016 (13.x)SQL Server 2016 (13.x) und Azure SQL-DatenbankAzure SQL Database werden verschlüsselt, wenn Sie TDE aktivieren.In SQL Server 2016 (13.x)SQL Server 2016 (13.x) and Azure SQL-DatenbankAzure SQL Database, In-Memory OLTP log records and data are encrypted if you enable TDE. In-Memory-OLTP-Protokolldatensätze in SQL Server 2014 (12.x)SQL Server 2014 (12.x) werden verschlüsselt, wenn Sie TDE aktivieren, Dateien in der MEMORY_OPTIMIZED_DATA-Dateigruppe werden jedoch nicht verschlüsselt.In SQL Server 2014 (12.x)SQL Server 2014 (12.x), In-Memory OLTP log records are encrypted if you enable TDE, but files in the MEMORY_OPTIMIZED_DATA filegroup are unencrypted.

Verschieben einer TDE-geschützten Datenbank auf einen anderen SQL-ServerMove a TDE Protected Database to Another SQL Server
Aktivieren von TDE in SQL Server mithilfe von EKMEnable TDE on SQL Server Using EKM
Erweiterbare Schlüsselverwaltung mit Azure Key Vault (SQL Server)Extensible Key Management Using Azure Key Vault (SQL Server)

Transparent Data Encryption mit Azure SQL-DatenbankTransparent Data Encryption with Azure SQL Database
Erste Schritte mit Transparent Data Encryption (TDE) in Azure Synapse AnalyticsGet started with Transparent Data Encryption (TDE) in Azure Synapse Analytics
SQL Server-VerschlüsselungSQL Server Encryption
Verschlüsselungsschlüssel für SQL Server und SQL-Datenbank (Datenbank-Engine)SQL Server and Database Encryption Keys (Database Engine)

Weitere InformationenSee also

Sicherheitscenter für SQL Server-Datenbank-Engine und Azure SQL-DatenbankSecurity Center for SQL Server Database Engine and Azure SQL Database
FILESTREAM (SQL Server)FILESTREAM (SQL Server)