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:
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' );
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: