Transparent Data Encryption con il database SQL di AzureTransparent Data Encryption with Azure SQL Database

QUESTO ARGOMENTO SI APPLICA A: noSQL Server sìDatabase SQL di Azure sìAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO: noSQL Server yesAzure SQL DatabaseyesAzure SQL Data Warehouse noParallel Data Warehouse

Database SQL di AzureAzure SQL Database Transparent Data Encryption contribuisce alla protezione dalle minacce di attività dannose eseguendo la crittografia e la decrittografia in tempo reale del database, dei backup associati e dei file di log delle transazioni inattivi senza richiedere modifiche all'applicazione. transparent data encryption helps protect against the threat of malicious activity by performing real-time encryption and decryption of the database, associated backups, and transaction log files at rest without requiring changes to the application.

Transparent Data Encryption crittografa l'archivio di un intero database utilizzando una chiave simmetrica denominata chiave di crittografia del database.TDE encrypts the storage of an entire database by using a symmetric key called the database encryption key. Nel Database SQLSQL Database la chiave di crittografia del database è protetta con un certificato server predefinito.In Database SQLSQL Database the database encryption key is protected by a built-in server certificate. Il certificato server predefinito è univoco per ogni server del Database SQLSQL Database .The built-in server certificate is unique for each Database SQLSQL Database server. Se un database fa parte di una relazione GeoDR, è protetto da una chiave diversa in ogni server.If a database is in a GeoDR relationship, it is protected by a different key on each server. Se due database sono connessi allo stesso server, condividono lo stesso certificato predefinito.If 2 databases are connected to the same server, they share the same built-in certificate. MicrosoftMicrosoft ruota automaticamente questi certificati almeno ogni 90 giorni. automatically rotates these certificates at least every 90 days. Per una descrizione generale di TDE, vedere Transparent Data Encryption (TDE).For a general description of TDE, see Transparent Data Encryption (TDE).

Database SQL di AzureAzure SQL Database non supporta l'integrazione dell'insieme di credenziali delle chiavi di Azure con TDE. does not support Azure Key Vault integration with TDE. SQL ServerSQL Server in esecuzione in una macchina virtuale di Azure può usare una chiave asimmetrica dall'insieme di credenziali delle chiavi. running on an Azure virtual machine can use an asymmetric key from the Key Vault. Per altre informazioni, vedere Extensible Key Management con l'insieme di credenziali delle chiavi di Azure (SQL Server).For more information, see Extensible Key Management Using Azure Key Vault (SQL Server).

Autorizzazioni Permissions

Per configurare TDE con il portale di Azure usando l'API REST o PowerShell, è necessario essere connessi come proprietario, collaboratore o Gestore Sicurezza SQL di Azure.To configure TDE through the Azure portal, by using the REST API, or by using PowerShell, you must be connected as the Azure Owner, Contributor, or SQL Security Manager.

Per configurare Transparent Data Encryption tramite Transact-SQLTransact-SQL è necessario soddisfare le condizioni seguenti:To configure TDE by using Transact-SQLTransact-SQL requires the following:

  • Per eseguire l'istruzione ALTER DATABASE con l'opzione SET, è richiesta l'appartenenza al ruolo dbmanager .To execute the ALTER DATABASE statement with the SET option requires membership in the dbmanager role.

Abilitare TDE in un database con il portale Enable TDE on a Database Using the Portal

  1. Visitare il portale di Azure all'indirizzo https://portal.azure.com e accedere con l'account amministratore o collaboratore di Azure.Visit the Azure Portal at https://portal.azure.com and sign-in with your Azure Administrator or Contributor account.

  2. Nel banner sinistro fare clic su SFOGLIAe quindi su Database SQL.On the left banner, click to BROWSE, and then click SQL databases.

  3. Con la voce Database SQL selezionata nel riquadro sinistro fare clic sul proprio database utente.With SQL databases selected in the left pane, click your user database.

  4. Nel pannello del database fare clic su Tutte le impostazioni.In the database blade, click All settings.

  5. Nel pannello Impostazioni fare clic su Transparent Data Encryption per aprire il pannello Transparent Data Encryption .In the Settings blade, click Transparent data encryption part to open the Transparent data encryption blade.

  6. Nel pannello Crittografia dati spostare lo stato attivo del pulsante Crittografia dati su Attivatoe quindi fare clic su Salva (in alto nella pagina) per applicare l'impostazione.In the Data encryption blade, move the Data encryption button to On, and then click Save (at the top of the page) to apply the setting. Il valore di Stato crittografia indicherà approssimativamente lo stato di avanzamento di Transparent Data Encryption.The Encryption status will approximate the progress of the transparent data encryption.

    Avvio crittografia TDE del database SQLSQL Database TDE Start Encryption

    È anche possibile monitorare lo stato di avanzamento della crittografia connettendosi al Database SQLSQL Database con uno strumento di query quale SQL Server Management StudioSQL Server Management Studio come utente del database con l'autorizzazione di VISUALIZZAZIONE STATO DEL DATABASE .You can also monitor the progress of encryption by connecting to Database SQLSQL Database using a query tool such as SQL Server Management StudioSQL Server Management Studio as a database user with the VIEW DATABASE STATE permission. Eseguire una query sulla colonna encryption_state della vista sys.dm_database_encryption_keys .Query the encryption_state column of the sys.dm_database_encryption_keys view.

Abilitazione di TDE nel Database SQLSQL Database tramite Transact-SQL Enabling TDE on Database SQLSQL Database by Using Transact-SQL

La procedura seguente consente di abilitare TDE.The following steps enable TDE.

  1. Connettersi al database con un account di accesso come amministratore o membro del ruolo dbmanager nel database master.Connect to the database using a login that is an administrator or a member of the dbmanager role in the master database.

  2. Eseguire le istruzioni seguenti per crittografare il database.Execute the following statements to encrypt the database.

    -- Enable encryption  
    ALTER DATABASE [AdventureWorks] SET ENCRYPTION ON;  
    GO  
    
  3. Per monitorare lo stato della crittografia nel Database SQLSQL Database, gli utenti del database con l'autorizzazione VIEW DATABASE STATE possono eseguire una query sulla colonna encryption_state della vista sys.dm_database_encryption_keys .To monitor the progress of encryption on Database SQLSQL Database, database users with the VIEW DATABASE STATE permission can query the encryption_state column of the sys.dm_database_encryption_keys view.

Abilitazione e disabilitazione di TDE in Database SQLSQL Database con PowerShell Enabling and Disabling TDE on Database SQLSQL Database by Using PowerShell

Con Azure PowerShell è possibile eseguire il comando seguente per attivare o disattivare TDE.Using the Azure PowerShell you can run the following command to turn TDE on/off. Prima di eseguire il comando, è necessario connettere l'account alla finestra di PowerShell.You must connect your account to the PS window before running the command. Personalizzare l'esempio per usare i propri valori per i parametri ServerName, ResourceGroupNamee DatabaseName .Customize the example to use your values for the ServerName, ResourceGroupName, and DatabaseName parameters. Per altre informazioni su PowerShell, vedere Come installare e configurare Azure PowerShell.For additional information about PowerShell, see How to install and configure Azure PowerShell.

Nota

Per continuare, è necessario installare e configurare la versione 1.0 di Azure PowerShell.To continue, you should install and configure version 1.0 of Azure PowerShell. È possibile usare la versione 0.9.8, che però è stata deprecata e richiede il passaggio ai cmdlet di AzureResourceManager con il comando PS C:\> Switch-AzureMode -Name AzureResourceManager .Version 0.9.8 can be used but it is deprecated and it requires switching to the AzureResourceManager cmdlets by using the PS C:\> Switch-AzureMode -Name AzureResourceManager command.

  1. Per abilitare TDE, tornare al relativo stato e visualizzare l'attività di crittografia:To enable TDE, return the TDE status, and view the encryption activity:

    PS C:\> Set-AzureRMSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1" -State "Enabled"  
    
    PS C:\> Get-AzureRMSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1"  
    
    PS C:\> Get-AzureRMSqlDatabaseTransparentDataEncryptionActivity -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1"  
    

    Se si usa la versione 0.9.8 usare i comandi Set-AzureSqlDatabaseTransparentDataEncryption, Get-AzureSqlDatabaseTransparentDataEncryption e Get-AzureSqlDatabaseTransparentDataEncryptionActivity.If using version 0.9.8 use the Set-AzureSqlDatabaseTransparentDataEncryption, Get-AzureSqlDatabaseTransparentDataEncryption, and Get-AzureSqlDatabaseTransparentDataEncryptionActivity commands.

  2. Per disabilitare TDE:To disable TDE:

    PS C:\> Set-AzureRMSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1" -State "Disabled"  
    

    Se si usa la versione 0.9.8 usare il comando Set-AzureSqlDatabaseTransparentDataEncryption.If using version 0.9.8 use the Set-AzureSqlDatabaseTransparentDataEncryption command.

Decrittografia di un database protetto con TDE nel Database SQLSQL Database Decrypting a TDE Protected Database on Database SQLSQL Database

Per disabilitare TDE tramite il portale di AzureTo Disable TDE by Using the Azure Portal

  1. Visitare il portale di Azure all'indirizzo https://portal.azure.com e accedere con l'account amministratore o collaboratore di Azure.Visit the Azure Portal at https://portal.azure.com and sign-in with your Azure Administrator or Contributor account.

  2. Nel banner sinistro fare clic su SFOGLIAe quindi su Database SQL.On the left banner, click to BROWSE, and then click SQL databases.

  3. Con la voce Database SQL selezionata nel riquadro sinistro fare clic sul proprio database utente.With SQL databases selected in the left pane, click your user database.

  4. Nel pannello del database fare clic su Tutte le impostazioni.In the database blade, click All settings.

  5. Nel pannello Impostazioni fare clic su Transparent Data Encryption per aprire il pannello Transparent Data Encryption .In the Settings blade, click Transparent Data encryption part to open the Transparent data encryption blade.

  6. Nel pannello Transparent Data Encryption spostare lo stato attivo del pulsante Crittografia dati su Attivatoe quindi fare clic su Salva (in alto nella pagina) per applicare l'impostazione.In the Transparent data encryption blade, move the Data encryption button to Off, and then click Save (at the top of the page) to apply the setting. Il valore di Stato crittografia indicherà approssimativamente lo stato di avanzamento della decrittografia trasparente dei dati.The Encryption status will approximate the progress of the transparent data decryption.

    È anche possibile monitorare lo stato di avanzamento della decrittografia connettendosi al Database SQLSQL Database con uno strumento di query quale Management StudioManagement Studio come utente del database con l'autorizzazione di VISUALIZZAZIONE STATO DEL DATABASE .You can also monitor the progress of decryption by connecting to Database SQLSQL Database using a query tool such as Management StudioManagement Studio as a database user with the VIEW DATABASE STATE permission. Eseguire una query sulla colonna encryption_state della vista sys.dm_database_encryption_keys .Query the encryption_state column of the sys.dm_database_encryption_keys view.

Per disabilitare TDE tramite Transact-SQLTo Disable TDE by Using Transact-SQL

  1. Connettersi al database con un account di accesso come amministratore o membro del ruolo dbmanager nel database master.Connect to the database using a login that is an administrator or a member of the dbmanager role in the master database.

  2. Eseguire le istruzioni seguenti per decrittografare il database.Execute the following statements to decrypt the database.

    -- Enable encryption  
    ALTER DATABASE [AdventureWorks] SET ENCRYPTION OFF;  
    GO  
    
  3. Per monitorare lo stato della crittografia nel Database SQLSQL Database, gli utenti del database con l'autorizzazione VIEW DATABASE STATE possono eseguire una query sulla colonna encryption_state della vista sys.dm_database_encryption_keys .To monitor the progress of encryption on Database SQLSQL Database, database users with the VIEW DATABASE STATE permission can query the encryption_state column of the sys.dm_database_encryption_keys view.

Spostamento di un database protetto con TDE in Database SQLSQL Database Moving a TDE Protected Database on Database SQLSQL Database

Non è necessario decrittografare i database per eseguire operazioni all'interno di Azure.You do not need to decrypt databases for operations within Azure. Le impostazioni di Transparent Data Encryption nel database di origine o nel database primario vengono ereditate in modo trasparente nel database di destinazione.The TDE settings on the source database or primary database are transparently inherited on the target. Sono incluse le operazioni che prevedono le attività seguenti:This includes operations involving:

  • Ripristino geograficoGeo-Restore

  • Ripristino temporizzato self-serviceSelf-Service Point in Time Restore

  • Ripristino di un database eliminatoRestore a Deleted Database

  • Replica a livello geografico attivaActive Geo_Replication

  • Creazione di una copia del databaseCreating a Database Copy

    Quando si esporta un database protetto con TDE usando la funzione Esporta database nel portale del Database SQL di AzureAzure SQL Database o con l'Importazione/Esportazione guidata di SQL ServerSQL Server , il contenuto esportato del database non è crittografato.When exporting a TDE protected database using the Export Database function in the Database SQL di AzureAzure SQL Database Portal or the SQL ServerSQL Server Import and Export Wizard, the exported content of the database is not encrypted. Questo contenuto esportato viene archiviato nei file con estensione bacpac non crittografati.This exported content is stored in unencrypted .bacpac files. Assicurarsi di proteggere i file BACPAC nel modo appropriato e abilitare TDE al termine dell'importazione del nuovo database.Be sure to protect the .bacpac files appropriately and enable TDE once import of the new database is completed.

    Ad esempio, se il file bacpac viene esportato da SQL ServerSQL Serverlocale, il contenuto importato del nuovo database non verrà crittografato automaticamente.For example, if the .bacpac file is exported from an on-premises SQL ServerSQL Server, then the imported content of the new database will not be automatically encrypted. Analogamente, anche se il file bacpac viene esportato da Database SQL di AzureAzure SQL Database a SQL ServerSQL Serverlocale, il nuovo database non verrà crittografato automaticamente.Likewise, if the .bacpac file is exported from an Database SQL di AzureAzure SQL Database to an on-premises SQL ServerSQL Server, the new database is also not automatically encrypted.

    L'unica eccezione riguarda l'esportazione verso e da Database SQL di AzureAzure SQL Database : TDE viene abilitato nel nuovo database, ma il file bacpac resta non crittografato.The one exception is when exporting to and from Database SQL di AzureAzure SQL Database – TDE will be enabled in the new database, but the .bacpac file itself is still not encrypted.

Abilitare TDE in SQL Server con EKMEnable TDE on SQL Server Using EKM

Vedere ancheSee Also

Transparent Data Encryption (TDE) Transparent Data Encryption (TDE)
CREATE CREDENTIAL (Transact-SQL) CREATE CREDENTIAL (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL) CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER DATABASE (Transact-SQL) ALTER DATABASE (Transact-SQL)