CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

Crea una chiave di crittografia utilizzata per crittografare in modo trasparente un database. Per ulteriori informazioni sulla crittografia trasparente del database (TDE, Transparent Data Encryption), vedere Informazioni sulla crittografia trasparente dei dati (TDE, Transparent Data Encryption).

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

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

  • 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 Nome_Componente_Crittografia
    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 si trovi in un provider EKM.

Osservazioni

Per poter crittografare un database utilizzando la crittografia trasparente del database (TDE, Transparent Database Encryption) è 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.

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

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 ulteriori esempi sull'utilizzo di Transparent Data Encryption, vedere Informazioni sulla crittografia trasparente dei dati (TDE, Transparent Data Encryption) e Procedura: Abilitazione di Transparent Data Encryption tramite Extensible Key Management.

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 AdventureWorks2008R2;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO