CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

S’applique à :SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

Crée une clé de chiffrement permettant de chiffrer une base de données de façon transparente. Pour plus d’informations sur le chiffrement transparent des données (TDE), consultez Transparent Data Encryption (TDE).

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
Spécifie l'algorithme de chiffrement utilisé pour la clé de chiffrement.

Avertissement

Depuis SQL Server 2016, tous les algorithmes autres que AES_128, AES_192 et AES_256 sont dépréciés. 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.

ENCRYPTION BY SERVER CERTIFICATE Encryptor_Name
Spécifie le nom du chiffreur utilisé pour chiffrer la clé de chiffrement de base de données.

ENCRYPTION 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. 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.

Notes

Une clé de chiffrement de base de données est requise pour qu’une base de données puisse être chiffrée à l’aide du chiffrement transparent des données (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. 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.

Les certificats ou clés asymétriques utilisés pour le chiffrement transparent des données sont limités à une taille de clé privée de 3 072 bits.

Les instructions de chiffrement de base de données ne sont autorisées que sur les bases de données utilisateur.

La clé de chiffrement de base de données ne peut pas être exportée de la base de données. 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.

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é.

Une clé de chiffrement de base de données est automatiquement créée pour une base de données SQL Database. Vous n’avez pas besoin de créer une clé à l’aide de l’instruction CREATE DATABASE ENCRYPTION KEY.

Autorisations

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.

Exemples

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).

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.

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

Voir aussi

Chiffrement transparent des données (TDE)
Chiffrement SQL Server
SQL Server et clés de chiffrement de base de données (moteur de base de données)
Hiérarchie de chiffrement
Options SET d’ALTER DATABASE (Transact-SQL)
ALTER DATABASE ENCRYPTION KEY (Transact-SQL)
DROP DATABASE ENCRYPTION KEY (Transact-SQL)
sys.dm_database_encryption_keys (Transact-SQL)