Share via


CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

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

Icona di collegamento a un argomento Convenzioni 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 risieda in un provider EKM (Extensible Key Management).

Osservazioni

Per poter crittografare un database utilizzando la Crittografia trasparente del database (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.

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 Transparent Data Encryption (TDE) e Abilitare TDE utilizzando EKM.

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

Riferimento

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)

Concetti

Transparent Data Encryption (TDE)

Crittografia di SQL Server

Chiavi di crittografia del database e di SQL Server (Motore di database)

Gerarchia di crittografia