DBAtlas · Atlas für Datenbankbetrieb

TDE einrichten: Master Key, Zertifikat, Zertifikatsbackup und Verschlüsselungsfortschritt

SQL ServerSicherheit

Befehl

USE master;
IF NOT EXISTS (SELECT 1 FROM sys.symmetric_keys WHERE name = N'##MS_DatabaseMasterKey##')
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'<GucluParola_1>';
CREATE CERTIFICATE [TDE_Cert_2026]
    WITH SUBJECT = N'TDE certificate', EXPIRY_DATE = '20361231';

-- Back it up NOW: without cert + private key the backups cannot be restored anywhere
BACKUP CERTIFICATE [TDE_Cert_2026]
    TO FILE = N'D:\Keys\TDE_Cert_2026.cer'
    WITH PRIVATE KEY (FILE = N'D:\Keys\TDE_Cert_2026.pvk',
                      ENCRYPTION BY PASSWORD = N'<GucluParola_2>');

USE [Musteri];
CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_256
    ENCRYPTION BY SERVER CERTIFICATE [TDE_Cert_2026];
ALTER DATABASE [Musteri] SET ENCRYPTION ON;

-- Progress and certificate backup date:
SELECT DB_NAME(dek.database_id) AS db, dek.encryption_state_desc, dek.percent_complete,
       dek.encryption_scan_state_desc, c.name AS cert_name, c.expiry_date, c.pvt_key_last_backup_date
FROM   sys.dm_database_encryption_keys dek
  LEFT JOIN master.sys.certificates c ON c.thumbprint = dek.encryptor_thumbprint;

-- On the target server (before restore / AG secondary):
-- CREATE CERTIFICATE [TDE_Cert_2026] FROM FILE = N'D:\Keys\TDE_Cert_2026.cer'
--   WITH PRIVATE KEY (FILE = N'D:\Keys\TDE_Cert_2026.pvk', DECRYPTION BY PASSWORD = N'<GucluParola_2>');

Was es tut

Legt in master einen Database Master Key und ein Zertifikat an, sichert das Zertifikat mit seinem Private Key, legt einen AES-256-Database-Encryption-Key an und verschlüsselt die Daten- und Logdateien at rest; zeigt den Fortschritt des Verschlüsselungsscans im Hintergrund.

Wann einsetzen

Für Anforderungen an Data-at-Rest-Verschlüsselung wie DSGVO/PCI und gegen den Diebstahl von Backup- sowie MDF/LDF-Dateien.

Vorsicht

Gehen das Backup von Zertifikat + Private Key oder dessen Passwort verloren, sind die TDE-Datenbank und alle ihre Backups DAUERHAFT unlesbar; bewahre das Backup in einem sicheren Tresor getrennt vom Server auf. Das Aktivieren von TDE auf irgendeiner Datenbank verschlüsselt auch tempdb (geringe serverweite CPU-Kosten). Der Verschlüsselungsscan ist I/O-intensiv; ab 2019 lässt er sich mit ALTER DATABASE ... SET ENCRYPTION SUSPEND/RESUME pausieren. Für AG/Log Shipping muss das Zertifikat zuerst auf jedem Zielserver installiert werden. TDE verschlüsselt keine Daten im Speicher oder im Netzwerk.

In DBAtlas öffnen →

Verwandte Einträge