Condividi tramite


Configurare la crittografia delle colonne usando la procedura guidata Always Encrypted

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di Azure

La procedura guidata Always Encrypted è uno strumento potente che consente di impostare la configurazione Always Encrypted desiderata per le colonne di database selezionate. In base alla configurazione corrente e alla configurazione di destinazione desiderata, la procedura guidata è in grado di crittografare una colonna, rimuovere la crittografia o riapplicarla, ad esempio usando una nuova chiave di crittografia della colonna o un tipo di crittografia diverso da quello in uso, configurato per la colonna. È possibile configurare più colonne in una singola sessione della procedura guidata.

La procedura guidata consente di crittografare le colonne con chiavi di crittografia della colonna esistenti. In alternativa, si può scegliere di generare una nuova chiave di crittografia della colonna oppure sia una nuova chiave di crittografia della colonna che una nuova chiave master di colonna.

Quando il database è configurato con un'enclave sicura, è possibile eseguire le operazioni di crittografia sul posto, senza trasferire i dati all'esterno del database. La procedura guidata rimuove tutte le dipendenze che bloccano la modifica dello schema della colonna da crittografare. Esegue una crittografia sul posto per ogni colonna usando l'enclave all'interno del motore di database. Al termine della crittografia, la procedura guidata ricrea le dipendenze. Per altre informazioni su Always Encrypted con enclave sicuri, vedere Always Encrypted con enclave sicuri.

Quando il database non è configurato con un enclave sicuro, la procedura guidata consente di abilitare un enclave sicuro. Se si sceglie di non abilitare un enclave sicuro o non si utilizzano chiavi abilitate per l'enclave, la procedura guidata funziona spostando i dati dal database ed eseguendo operazioni di crittografia all'interno del processo di SQL Server Management Studio (SSMS). La procedura guidata crea una o più nuove tabelle con la configurazione di crittografia desiderata nel database, carica tutti i dati dalle tabelle originali, esegue le operazioni di crittografia richieste, carica i dati nelle nuove tabelle e quindi scambia le tabelle originali con le nuove tabelle.

Suggerimento

L'uso della crittografia sul posto con Always Encrypted con enclave sicuri, se disponibile nell'ambiente, potrebbe ridurre notevolmente il tempo e l'affidabilità delle operazioni di crittografia.

Nota

L'esecuzione di operazioni di crittografia può richiedere molto tempo. Durante questo periodo, il database non è disponibile per le transazioni di scrittura. Per le operazioni di crittografia in tabelle di grandi dimensioni, lo strumento consigliato è PowerShell. Vedere Configurare la crittografia delle colonne usando Always Encrypted con PowerShell o Configurare la crittografia delle colonne sul posto con PowerShell.

Autorizzazioni

Per eseguire operazioni di crittografia tramite la procedura guidata, è necessario disporre delle autorizzazioni VIEW ANY COLUMN MASTER KEY DEFINITION e VIEW ANY COLUMN ENCRYPTION KEY DEFINITION . Sono necessarie anche le autorizzazioni dell'archivio chiavi per creare, accedere e usare la chiave master della colonna. Per informazioni dettagliate sulle autorizzazioni dell'archivio chiavi, vedere Creare e archiviare chiavi master della colonna per Always Encrypted o trovare una sezione pertinente per l'archivio chiavi.

Aprire la procedura guidata Always Encrypted

È possibile avviare la procedura guidata a tre livelli diversi:

  • A livello di database, se si vogliono crittografare più colonne situate in tabelle diverse.
  • A livello di tabella, se si vogliono crittografare più colonne situate nella stessa tabella.
  • A livello di colonna, se si vuole crittografare una specifica colonna.
  1. Connettersi a SQL Server con il componente Esplora oggetti di SQL Server Management Studio.

  2. Per crittografare:

    1. Più colonne che si trovano in tabelle diverse in un database, fare clic con il pulsante destro del mouse sul database, scegliere Attività e quindi selezionare Crittografa colonne.
    2. Più colonne situate nella stessa tabella, navigare nella tabella, fare clic con il pulsante destro del mouse su di essa e quindi selezionare Crittografa colonne.
    3. Una singola colonna, passare alla colonna, fare clic con il pulsante destro del mouse su di essa e quindi scegliere Crittografa colonne.

Pagina Selezione colonna

In questa pagina è possibile selezionare le colonne da crittografare, crittografare nuovamente o decrittografare, oltre che definire la configurazione di crittografia di destinazione per le colonne selezionate.

Per crittografare una colonna di testo non crittografato (una colonna non crittografata), selezionare un tipo di crittografia (deterministico o casuale) e una chiave di crittografia per la colonna.

Per modificare un tipo di crittografia o per ruotare (modificare) una chiave di crittografia della colonna per una colonna già crittografata, selezionare il tipo di crittografia desiderato e la chiave.

Se si desidera che la procedura guidata crittografi o ricrittografi una o più colonne utilizzando una nuova chiave di crittografia della colonna, selezionare una chiave che contenga (Nuovo) nel proprio nome. La procedura guidata genererà la chiave.

Per decrittografare una colonna attualmente crittografata, selezionare Testo non crittografato per il tipo di crittografia.

Nota

Se si vuole usare la crittografia sul posto e si usano chiavi esistenti, assicurarsi di selezionare chiavi abilitate per l'enclave, annotate con (abilitate per l'enclave).

Nota

La procedura guidata non supporta le operazioni di crittografia nelle tabelle temporali e in memoria. È possibile creare tabelle temporali o in memoria vuote usando Transact-SQL e inserire dati usando l'applicazione.

Pagina Configurazione chiave master

Se per qualsiasi colonna nella pagina precedente è stata selezionata una chiave di crittografia della colonna generata automaticamente, in questa pagina occorre selezionare una chiave master di colonna esistente oppure configurare una nuova chiave master di colonna che crittograferà la chiave di crittografia della colonna.

Quando si configura una nuova chiave master di colonna, è possibile selezionare una chiave esistente nell'archivio certificati di Windows o in Azure Key Vault e fare in modo che la procedura guidata crei nel database solo un oggetto metadati per la chiave. In alternativa, si può scegliere di generare nel database sia la chiave che l'oggetto metadati che descrive la chiave.

Per usare la crittografia sul posto, assicurarsi di selezionare Consenti calcoli enclave per una nuova chiave principale di colonna. È possibile selezionare questa casella di controllo solo se il database è configurato con un'enclave sicura.

Per altre informazioni sulla creazione e l'archiviazione di chiavi master della colonna nell'archivio certificati di Windows, in Azure Key Vault o in altri archivi chiavi, vedere Creare e archiviare chiavi master della colonna per Always Encrypted o Gestire chiavi per Always Encrypted con enclave sicuri.

Suggerimento

La procedura guidata consente di esplorare e creare chiavi solo nell'archivio certificati Windows e in Azure Key Vault. Genera automaticamente anche i nomi delle nuove chiavi e degli oggetti metadati del database che descrivono le chiavi. Se è necessario un maggiore controllo sulla modalità di provisioning delle chiavi e altre opzioni per un archivio chiavi contenente la chiave master della colonna, è possibile usare le finestre di dialogo Nuova chiave master della colonna e Nuova chiave di crittografia della colonna per creare prima le chiavi e quindi eseguire la procedura guidata e selezionare le chiavi create. Vedere Come effettuare il provisioning delle chiavi master di colonna con la finestra di dialogo Nuova chiave master di colonna o Provvedere alle chiavi abilitate per enclave e Effettuare il provisioning delle chiavi di crittografia della colonna con la finestra di dialogo Nuova chiave di crittografia della colonna.

Pagina Impostazioni crittografia sul posto

Se è stata configurata un'enclave sicura nel database e si usano chiavi abilitate per l'enclave, questa pagina consente di specificare i parametri di attestazione dell'enclave, necessari per la crittografia sul posto. Se non si vuole usare la crittografia sul posto, deselezionare Usa crittografia sul posto per le colonne idonee per procedere con la crittografia lato client. È consigliabile lasciare abilitata questa casella di controllo in modo che la procedura guidata possa usare la crittografia sul posto.

Per altre informazioni sull'attestazione dell'enclave, vedere Configurare l'attestazione per Always Encrypted con Attestazione di Azure

Post-crittografia

Cancella la cache dei piani per tutti i batch e le procedure memorizzate che accedono alla tabella, al fine di aggiornare le informazioni sulla crittografia dei parametri.

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;

Nota

Se non si rimuove il piano per la query interessata dalla cache, la prima esecuzione della query dopo la crittografia potrebbe non riuscire.

Usare ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE o DBCC FREEPROCCACHE per cancellare la cache dei piani con cautela, in quanto può comportare una riduzione temporanea delle prestazioni delle query. Per ridurre al minimo l'impatto negativo della cancellazione della cache, è possibile rimuovere selettivamente i piani solo per le query interessate.

Chiamare sp_refresh_parameter_encryption per aggiornare i metadati per i parametri di ogni modulo (stored procedure, funzione, vista, trigger) che sono persistenti in sys.parameters e che potrebbero essere stati resi non validi a causa della crittografia delle colonne.