Condividi tramite


Lezione 5. (facoltativo) crittografare il database tramite TDE

Come passaggio facoltativo, è possibile crittografare il database appena creato. Transparent Data Encryption (TDE) esegue la crittografia e la decrittografia I/O in tempo reale dei file di dati e di log. Per questo tipo di crittografia viene utilizzata una chiave di crittografia del database (DEK), archiviata nel record di avvio del database affinché sia disponibile durante le operazioni di recupero. Per altre informazioni, vedere Transparent Data Encryption (TDE) e Spostare un database protetto da TDE in un altro SQL Server.

Per questa lezione si presuppone che l'utente abbia già completato i passaggi seguenti:

  • Si dispone di un account di archiviazione di Azure.

  • È stato creato un contenitore nell'account di archiviazione di Azure.

  • Creazione dei criteri in un contenitore con diritti di lettura, scrittura ed elenco. Generazione di una chiave SAS.

  • Creazione di una credenziale di SQL Server nel computer di origine.

  • È stato creato un database seguendo i passaggi descritti nella lezione 4.

Se si desidera crittografare un database, effettuare i passaggi riportati di seguito:

  1. Nel computer di origine modificare ed eseguire le istruzioni seguenti in una finestra di query:

    
    -- Create a master key and a server certificate   
    USE master   
    GO   
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MySQLKey01';   
    GO   
    CREATE CERTIFICATE MySQLCert WITH SUBJECT = 'SQL - Azure Storage Certification'   
    GO   
    -- Create a backup of the server certificate in the master database.   
    -- Store TDS certificates in the source machine locally.   
    BACKUP CERTIFICATE MySQLCert   
    TO FILE = 'C:\certs\MySQLCert.CER'   
    WITH PRIVATE KEY   
    (   
    FILE = 'C:\certs\MySQLPrivateKeyFile.PVK',   
    ENCRYPTION BY PASSWORD = 'MySQLKey01'   
    );  
    
    
  2. Quindi, crittografare il nuovo database nel computer di origine eseguendo la procedura seguente:

    
    -- Switch to the new database.   
    -- Create a database encryption key, that is protected by the server certificate in the master database.    
    -- Alter the new database to encrypt the database using TDE.   
    USE TestDB1;   
    GO   
    -- Encrypt your database   
    CREATE DATABASE ENCRYPTION KEY   
    WITH ALGORITHM = AES_256   
    ENCRYPTION BY SERVER CERTIFICATE MySQLCert   
    GO   
    
    ALTER DATABASE TestDB1   
    SET ENCRYPTION ON   
    GO  
    
    

Se si desiderano informazioni sullo stato della crittografia di un database e le relative chiavi di crittografia del database associate, eseguire l'istruzione seguente:

  
SELECT * FROM sys.dm_database_encryption_keys;   
GO  
  

Per informazioni dettagliate sulle istruzioni Transact-SQL usate in questa lezione, vedere CREATE DATABASE (SQL Server Transact-SQL),ALTER DATABASE (Transact-SQL), CREATEMASTER KEY (Transact-SQL),CREATE CERTIFICATE (Transact-SQL) e sys.dm_database_encryption_keys (Transact-SQL).

Lezione successiva:

Lezione 6: Eseguire la migrazione di un database da un computer di origine locale a un computer di destinazione in Azure