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.
Gilt für:SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
Erstellt einen Verschlüsselungsschlüssel zum transparenten Verschlüsseln einer Datenbank. Weitere Informationen zu transparent data encryption (TDE) finden Sie unter Transparent Data Encryption (TDE).
Transact-SQL Syntaxkonventionen
Syntax
-- Syntax for SQL Server
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
ENCRYPTION BY SERVER
{
CERTIFICATE Encryptor_Name |
ASYMMETRIC KEY Encryptor_Name
}
[ ; ]
-- Syntax for Parallel Data Warehouse
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
ENCRYPTION BY SERVER CERTIFICATE Encryptor_Name
[ ; ]
Argumente
WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
Gibt den Verschlüsselungsalgorithmus für den Verschlüsselungsschlüssel an.
Warnung
Ab SQL Server 2016 sind alle Algorithmen außer AES_128, AES_192 und AES_256 veraltet. Um ältere Algorithmen zu verwenden (was nicht empfohlen wird), müssen Sie den Kompatibilitätsgrad zwischen Datenbanken auf höchsten 120 festlegen.
VERSCHLÜSSELUNG NACH SERVERZERTIFIKAT Encryptor_Name
Gibt den Namen der Verschlüsselung an, die zum Verschlüsseln des Verschlüsselungsschlüssels für die Datenbank verwendet wird.
ENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_Name Gibt den Namen des asymmetrischen Schlüssels an, der zum Verschlüsseln des Datenbankverschlüsselungsschlüssels verwendet wird. 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.
Hinweise
Ein Datenbankverschlüsselungsschlüssel ist erforderlich, bevor eine Datenbank mit transparenter Datenverschlüsselung (TDE) verschlüsselt werden kann. Wenn eine Datenbank transparent verschlüsselt ist, so ist die gesamte Datenbank auf Dateiebene ohne spezielle Codeänderungen verschlüsselt. Das Zertifikat oder der asymmetrische Schlüssel, der den Datenbankverschlüsselungsschlüssel verschlüsselt, muss sich in der master Systemdatenbank befinden.
Zertifikate oder asymmetrische Schlüssel, die für TDE verwendet werden, sind auf eine private Schlüsselgröße von 3072 Bit beschränkt.
Datenbankverschlüsselungsanweisungen sind nur für Benutzerdatenbanken zulässig.
Der Datenbankverschlüsselungsschlüssel kann nicht aus der Datenbank exportiert werden. Es ist nur für das System verfügbar, für Benutzer mit Debugberechtigungen auf dem Server und für Benutzer, die Zugriff auf die Zertifikate haben, die den Datenbankverschlüsselungsschlüssel verschlüsseln und entschlüsseln.
Der Datenbankverschlüsselungsschlüssel muss nicht neu generiert werden, wenn ein Datenbankbesitzer (dbo) geändert wird.
Für eine SQL-Datenbank wird automatisch ein Verschlüsselungsschlüssel erstellt. Sie müssen keinen Schlüssel mithilfe der CREATE DATABASE ENCRYPTION KEY Anweisung erstellen.
Berechtigungen
Erfordert die CONTROL-Berechtigung für die Datenbank und die VIEW DEFINITION-Berechtigung für das Zertifikat oder den asymmetrischen Schlüssel, die zum Verschlüsseln des Verschlüsselungsschlüssels für die Datenbank verwendet werden.
Beispiele
Weitere Beispiele mit TDE finden Sie unter Transparent Data Encryption (TDE), Enable TDE on SQL Server Using EKM, and Extensible Key Management Using Azure Key Vault (SQL Server).
A. Erstellen eines Datenbankverschlüsselungsschlüssels
Im folgenden Beispiel wird der Datenbank-Verschlüsselungsschlüssel mithilfe des AES_256-Algorithmus erstellt, und der private Schlüssel wird mit einem Zertifikat namens MyServerCert geschützt.
USE AdventureWorks2022;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
B. Wiederherstellen einer TDE-verschlüsselten Datenbank in einer anderen Instanz
Um eine TDE-verschlüsselte Datenbank in einer anderen SQL Server Instanz wiederherzustellen, müssen Sie zuerst das Zertifikat importieren, das den Datenbankverschlüsselungsschlüssel schützt. Sichern Sie das Zertifikat und den privaten Schlüssel vom Quellserver, und erstellen Sie dann das Zertifikat auf der Zielinstanz, bevor Sie die Datenbank wiederherstellen.
Sichern Sie das Zertifikat auf dem Quellserver:
-- On the SOURCE server
USE master;
GO
BACKUP CERTIFICATE MyServerCert
TO FILE = 'C:\Backup\MyServerCert.cer'
WITH PRIVATE KEY (
FILE = 'C:\Backup\MyServerCert.pvk',
ENCRYPTION BY PASSWORD = '<strong_password>'
);
GO
Erstellen Sie auf dem Zielserver das Zertifikat aus den Sicherungsdateien, und stellen Sie dann die Datenbank wieder her:
-- On the TARGET server
USE master;
GO
CREATE CERTIFICATE MyServerCert
FROM FILE = 'C:\Backup\MyServerCert.cer'
WITH PRIVATE KEY (
FILE = 'C:\Backup\MyServerCert.pvk',
DECRYPTION BY PASSWORD = '<strong_password>'
);
GO
-- Now you can restore the TDE-encrypted database
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'C:\Backup\AdventureWorks2022.bak'
WITH MOVE 'AdventureWorks2022_Data' TO 'D:\Data\AdventureWorks2022.mdf',
MOVE 'AdventureWorks2022_Log' TO 'D:\Data\AdventureWorks2022.ldf';
GO
Von Bedeutung
Das Zertifikat muss denselben Namen haben und aus denselben Sicherungsdateien erstellt werden. Wenn das Zertifikat nicht übereinstimmt, schlägt die Wiederherstellung mit einem Verschlüsselungsschlüsselfehler fehl.
Verwandte Inhalte
- Transparent Data Encryption (TDE)
- SQL Server Encryption
- SQL Server und Datenbankverschlüsselungsschlüssel (Database Engine)
- Verschlüsselungshierarchie
- ALTER DATABASE SET Options (Transact-SQL)
- ALTER DATABASE ENCRYPTION KEY (Transact-SQL)
- DROP DATABASE ENCRYPTION KEY (Transact-SQL)
- sys.dm_database_encryption_keys (Transact-SQL)
- BACKUP CERTIFICATE (Transact-SQL)
- CREATE CERTIFICATE (Transact-SQL)