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

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure Synapse Analytics (SQL DW) ouiParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Crée une clé de chiffrement permettant de chiffrer une base de données de façon transparente.Creates an encryption key that is used for transparently encrypting a database. Pour plus d’informations sur le chiffrement transparent de bases de données, consultez Chiffrement transparent des données (TDE, Transparent Data Encryption).For more information about transparent database encryption, see Transparent Data Encryption (TDE).

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

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

ArgumentsArguments

WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
Spécifie l'algorithme de chiffrement utilisé pour la clé de chiffrement.Specifies the encryption algorithm that is used for the encryption key.

Notes

Depuis SQL Server 2016, tous les algorithmes autres que AES_128, AES_192 et AES_256 sont dépréciés.Beginning with SQL Server 2016, all algorithms other than AES_128, AES_192, and AES_256 are deprecated. Pour utiliser des algorithmes plus anciens (ce qui n’est pas recommandé), vous devez affecter le niveau de compatibilité 120 ou un niveau inférieur à la base de données.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
Spécifie le nom du chiffreur utilisé pour chiffrer la clé de chiffrement de base de données.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
Spécifie le nom de la clé asymétrique utilisée pour chiffrer la clé de chiffrement de base de données.Specifies the name of the asymmetric key used to encrypt the database encryption key. Afin de chiffrer la clé de chiffrement de base de données avec une clé asymétrique, la clé asymétrique doit résider sur un fournisseur de gestion de clés extensible.In order to encrypt the database encryption key with an asymmetric key, the asymmetric key must reside on an extensible key management provider.

NotesRemarks

Une clé de chiffrement de base de données est nécessaire avant qu’une base de données puisse être chiffrée en utilisant le chiffrement transparent des données (TDE).A database encryption key is required before a database can be encrypted by using Transparent Database Encryption (TDE). Lorsqu'une base de données est chiffrée de façon transparente, elle l'est entièrement au niveau des fichiers, sans aucune modification de code spéciale.When a database is transparently encrypted, the whole database is encrypted at the file level, without any special code modifications. Le certificat ou la clé asymétrique utilisé pour chiffrer la clé de chiffrement de base de données doit se trouver dans la base de données système principale.The certificate or asymmetric key that is used to encrypt the database encryption key must be located in the master system database.

Les instructions de chiffrement de base de données ne sont autorisées que sur les bases de données utilisateur.Database encryption statements are allowed only on user databases.

La clé de chiffrement de base de données ne peut pas être exportée de la base de données.The database encryption key cannot be exported from the database. Elle est uniquement disponible pour le système, les utilisateurs qui disposent d'autorisations de débogage sur le serveur et les utilisateurs qui ont accès aux certificats qui chiffrent et déchiffrent la clé de chiffrement de base de données.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.

La clé de chiffrement de base de données n'a pas besoin d'être régénérée lorsqu'un propriétaire de base de données (dbo) est modifié.The database encryption key does not have to be regenerated when a database owner (dbo) is changed.

Une clé de chiffrement de base de données est automatiquement créée pour une base de données SQL DatabaseSQL Database.A database encryption key is automatically created for a SQL DatabaseSQL Database database. Vous n’avez pas besoin de créer une clé à l’aide de l’instruction CREATE DATABASE ENCRYPTION KEY.You do not need to create a key using the CREATE DATABASE ENCRYPTION KEY statement.

AutorisationsPermissions

Nécessite l'autorisation CONTROL sur la base de données et l'autorisation VIEW DEFINITION sur le certificat ou la clé asymétrique permettant de chiffrer la clé de chiffrement de base de données.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.

ExemplesExamples

Pour obtenir des exemples supplémentaires utilisant TDE, consultez Chiffrement transparent des données (TDE), Activer le chiffrement transparent des données à l’aide de la gestion de clés extensible (EKM) et Gestion de clés extensible à l’aide d’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).

Dans l'exemple suivant, une clé de chiffrement de base de données est créée à l'aide de l'algorithme AES_256, et protège la clé privée à l'aide d'un certificat nommé MyServerCert.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  

Voir aussiSee Also

Chiffrement transparent des données (TDE) Transparent Data Encryption (TDE)
Chiffrement SQL Server SQL Server Encryption
SQL Server et clés de chiffrement de base de données (moteur de base de données) SQL Server and Database Encryption Keys (Database Engine)
Hiérarchie de chiffrement Encryption Hierarchy
Options ALTER DATABASE SET (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)