CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

Si applica a: SQL Server (tutte le versioni supportate) Istanza gestita di SQL di Azure Analytics Platform System (PDW)

Crea una chiave di crittografia usata per crittografare in modo trasparente un database. Per altre informazioni sulla crittografia del database trasparente, vedere Transparent Data Encryption (TDE).

Icona di collegamento argomento IconaTransact-SQL Sintassi Transact-SQL Convenzioni

Sintassi

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

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.

Argomenti

WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
Specifica l'algoritmo di crittografia utilizzato per la chiave di crittografia.

Avviso

A partire da SQL Server 2016, tutti gli algoritmi diversi da AES_128, AES_192 e AES_256 sono deprecati. Per usare algoritmi meno recenti (sconsigliato), è necessario impostare il database sul livello di compatibilità del database 120 o su uno inferiore.

ENCRYPTION BY SERVER CERTIFICATE Encryptor_Name
Specifica il nome del componente di crittografia utilizzato per crittografare la chiave di crittografia del database.

ENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_Name
Specifica il nome della chiave asimmetrica utilizzata per crittografare la chiave di crittografia del database. Per crittografare la chiave di crittografia del database con una chiave asimmetrica, è necessario che quest'ultima risieda in un provider EKM (Extensible Key Management).

Osservazioni

Per poter crittografare un database usando Transparent Data Encryption (TDE) è necessaria una chiave di crittografia del database. Crittografandolo in modo trasparente, l'intero database viene crittografato a livello di file, in assenza di qualunque modifica particolare del codice. La chiave asimmetrica o il certificato utilizzato per crittografare la chiave di crittografia del database deve essere archiviata nel database di sistema master.

I certificati o le chiavi asimmetriche usate per TDE sono limitati a una dimensione di chiave privata di 3072 bit.

Le istruzioni sulla crittografia del database sono consentite solo sui database utente.

Non è possibile esportare dal database la relativa chiave di crittografia. È disponibile solo per il sistema, per gli utenti con autorizzazioni di debug per il server e per gli utenti che hanno accesso ai certificati utilizzati per crittografare e decrittografare la chiave di crittografia del database.

Non è necessario rigenerare la chiave di crittografia del database in caso di modifica del proprietario del database (dbo).

Viene creata automaticamente una chiave di crittografia del database per un database di database SQL. Non è necessario creare una chiave usando l'istruzione CREATE DATABASE ENCRYPTION KEY.

Autorizzazioni

Sono necessarie l'autorizzazione CONTROL per il database e l'autorizzazione VIEW DEFINITION per la chiave asimmetrica o il certificato utilizzato per crittografare la chiave di crittografia del database.

Esempi

Per altri esempi che usano TDE, vedere Transparent Data Encryption (TDE), Enable TDE onSQL Server Using EKM e Extensible Key Management using Azure Key Vault (SQL Server).

Nell'esempio seguente viene creata una chiave di crittografia del database tramite l'algoritmo AES_256 e tale chiave viene quindi protetta con un certificato denominato MyServerCert.

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

Vedere anche

Transparent Data Encryption (TDE)
Crittografia di SQL Server
Chiavi di crittografia del database e di SQL Server (Motore di database)
Gerarchia di crittografia
Opzioni ALTER DATABASE SET (Transact-SQL)
ALTER DATABASE ENCRYPTION KEY (Transact-SQL)
DROP DATABASE ENCRYPTION KEY (Transact-SQL)
sys.dm_database_encryption_keys (Transact-SQL)