CREATE DATABASE ENCRYPTION KEY (Transact-SQL)CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

GILT FÜR: JaSQL Server NeinAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) JaParallel Data Warehouse APPLIES TO: YesSQL Server NoAzure SQL Database NoAzure Synapse Analytics (SQL DW) YesParallel Data Warehouse

Erstellt einen Verschlüsselungsschlüssel für eine Datenbank, der für die transparente Datenbankverschlüsselung verwendet wird.Creates an encryption key that is used for transparently encrypting a database. Weitere Informationen zur transparenten Datenbankverschlüsselung finden Sie unter Transparent Data Encryption (TDE).For more information about transparent database encryption, see Transparent Data Encryption (TDE).

Symbol für Themenlink Transact-SQL-SyntaxkonventionenTopic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

-- 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   
[ ; ]  

ArgumenteArguments

WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
Gibt den Verschlüsselungsalgorithmus an, der für den Verschlüsselungsschlüssel verwendet wird.Specifies the encryption algorithm that is used for the encryption key.

Hinweis

Ab SQL Server 2016 gelten andere Algorithmen als AES_128, AES_192 und AES_256 als veraltet.Beginning with SQL Server 2016, all algorithms other than AES_128, AES_192, and AES_256 are deprecated. Um ältere Algorithmen zu verwenden (was nicht empfohlen wird), müssen Sie den Kompatibilitätsgrad zwischen Datenbanken auf höchsten 120 festlegen.To use older algorithms (not recommended) you must set the database to database compatibility level 120 or lower.

ENCRYPTION BY SERVER CERTIFICATE Encryptor_NameENCRYPTION BY SERVER CERTIFICATE Encryptor_Name
Gibt den Namen der Verschlüsselung an, die zum Verschlüsseln des Verschlüsselungsschlüssels für die Datenbank verwendet wird.Specifies the name of the encryptor used to encrypt the database encryption key.

ENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_NameENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_Name
Gibt den Namen des asymmetrischen Schlüssels an, der zum Verschlüsseln des Verschlüsselungsschlüssels für die Datenbank verwendet wird.Specifies the name of the asymmetric key used to encrypt the database encryption key. Um den Verschlüsselungsschlüssel für die Datenbank mit einem asymmetrischen Schlüssel zu verschlüsseln, muss sich der asymmetrische Schlüssel auf einem erweiterbaren Schlüsselverwaltungsanbieter befinden.In order to encrypt the database encryption key with an asymmetric key, the asymmetric key must reside on an extensible key management provider.

BemerkungenRemarks

Bevor eine Datenbank mit Transparent Database Encryption (TDE) verschlüsselt werden kann, wird ein Verschlüsselungsschlüssel für eine Datenbank wird benötigt.A database encryption key is required before a database can be encrypted by using Transparent Database Encryption (TDE). Wenn eine Datenbank transparent verschlüsselt ist, so ist die gesamte Datenbank auf Dateiebene ohne spezielle Codeänderungen verschlüsselt.When a database is transparently encrypted, the whole database is encrypted at the file level, without any special code modifications. Das Zertifikat oder der asymmetrische Schlüssel, das bzw. der zum Verschlüsseln des Verschlüsselungsschlüssels für die Datenbank verwendet wird, muss sich in der master-Systemdatenbank befinden.The certificate or asymmetric key that is used to encrypt the database encryption key must be located in the master system database.

Datenbankverschlüsselungsanweisungen sind nur für Benutzerdatenbanken zulässig.Database encryption statements are allowed only on user databases.

Der Verschlüsselungsschlüssel für die Datenbank kann nicht aus der Datenbank exportiert werden.The database encryption key cannot be exported from the database. Er ist nur für das System, für Benutzer, die Debugberechtigungen auf dem Server haben, und für Benutzer verfügbar, die Zugriff auf die Zertifikate zum Verschlüsseln und Entschlüssen des Verschlüsselungsschlüssels für die Datenbank haben.It is available only to the system, to users who have debugging permissions on the server, and to users who have access to the certificates that encrypt and decrypt the database encryption key.

Der Verschlüsselungsschlüssel für die Datenbank muss nicht erneut generiert werden, wenn ein Datenbankbesitzer (DBO) geändert wird.The database encryption key does not have to be regenerated when a database owner (dbo) is changed.

Für eine SQL-DatenbankSQL Database-Datenbank wird automatisch ein Verschlüsselungsschlüssel erstellt.A database encryption key is automatically created for a SQL-DatenbankSQL Database database. Es ist nicht erforderlich, mit der CREATE DATABASE ENCRYPTION KEY-Anweisung einen Schlüssel zu erstellen.You do not need to create a key using the CREATE DATABASE ENCRYPTION KEY statement.

BerechtigungenPermissions

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.Requires CONTROL permission on the database and VIEW DEFINITION permission on the certificate or asymmetric key that is used to encrypt the database encryption key.

BeispieleExamples

Weitere Beispiele zur Verwendung von TDE finden Sie unter Transparent Data Encryption (TDE), Aktivieren von TDE in SQL Server mithilfe von EKM und Erweiterbare Schlüsselverwaltung mit Azure Key Vault (SQL Server).For additional examples using TDE, see Transparent Data Encryption (TDE), Enable TDE on SQL Server Using EKM, and Extensible Key Management Using Azure Key Vault (SQL Server).

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.The following example creates a database encryption key by using the AES_256 algorithm, and protects the private key with a certificate named MyServerCert.

USE AdventureWorks2012;  
GO  
CREATE DATABASE ENCRYPTION KEY  
WITH ALGORITHM = AES_256  
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;  
GO  

Weitere InformationenSee Also

Transparente Datenverschlüsselung (TDE) Transparent Data Encryption (TDE)
SQL Server-Verschlüsselung SQL Server Encryption
Verschlüsselungsschlüssel für SQL Server und Datenbank (Datenbank-Engine) SQL Server and Database Encryption Keys (Database Engine)
Verschlüsselungshierarchie Encryption Hierarchy
ALTER DATABASE SET-Optionen (Transact-SQL) ALTER DATABASE SET Options (Transact-SQL)
ALTER DATABASE ENCRYPTION KEY (Transact-SQL) ALTER DATABASE ENCRYPTION KEY (Transact-SQL)
DROP DATABASE ENCRYPTION KEY (Transact-SQL) DROP DATABASE ENCRYPTION KEY (Transact-SQL)
sys.dm_database_encryption_keys (Transact-SQL)sys.dm_database_encryption_keys (Transact-SQL)