Configurare la crittografia delle colonne tramite Always Encrypted con un pacchetto DAC

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

Un pacchetto di applicazione livello dati (DAC), noto anche come DACPAC, è un'unità portabile della distribuzione di database SQL Server che definisce tutti gli oggetti SQL Server, incluse le tabelle e le colonne delle tabelle. Quando si pubblica un pacchetto di applicazione livello dati in un database (quando si aggiorna un database usando un pacchetto di applicazione livello dati), lo schema del database di destinazione viene aggiornato in modo che corrisponda allo schema nel pacchetto di applicazione livello dati. È possibile pubblicare un pacchetto DACPAC seguendo la procedura guidata Aggiorna applicazione di livello dati in SQL Server Management Studio, PowerShell o SqlPackage.

Questo articolo tratta considerazioni specifiche relative all'aggiornamento di un database quando il DACPAC o il database di destinazione contengono colonne protette con Always Encrypted. Se lo schema di crittografia per una colonna nel pacchetto DACPAC differisce dallo schema di crittografia per una colonna esistente nel database di destinazione, la pubblicazione di DACPAC comporta la crittografia, la decrittografia o la nuova crittografia dei dati archiviati nella colonna. Vedere la tabella seguente per i dettagli.

Condizione Azione
La colonna è crittografata nel file DACPAC e non è crittografata nel database. I dati contenuti nella colonna verranno crittografati.
La colonna non è crittografata nel file DACPAC ed è crittografata nel database. I dati presenti nella colonna verranno decrittografati ovvero la crittografia verrà rimossa dalla colonna.
La colonna viene crittografata sia nel pacchetto di applicazione livello dati che nel database, ma la colonna nel pacchetto di applicazione livello dati usa un tipo di crittografia diverso o una chiave di crittografia di colonna diversa rispetto alla colonna corrispondente nel database. I dati presenti nella colonna verranno decrittografati e di nuovo crittografati in modo da corrispondere alla configurazione di crittografia nel file DACPAC.

La distribuzione di un pacchetto DAC può comportare anche la creazione o la rimozione di oggetti metadati per le chiavi master della colonna o le chiavi di crittografia della colonna per Always Encrypted.

Considerazioni sulle prestazioni

Per eseguire operazioni di crittografia, lo strumento usato per distribuire un pacchetto DACPAC deve spostare i dati fuori dal database. Lo strumento 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. L'esecuzione di operazioni di crittografia può richiedere molto tempo. Durante questo periodo, il database non è disponibile per eseguire transazioni di scrittura.

Nota

Se si usa SQL Server 2019 (15.x) e l'istanza di SQL Server è configurata con un'enclave sicura, è possibile eseguire le operazioni di crittografia sul posto, senza trasferire i dati all'esterno del database. Consultare Configurare la crittografia delle colonne direttamente con Always Encrypted con enclave sicure. La crittografia sul posto non è disponibile per le distribuzioni DACPAC.

Autorizzazioni per la pubblicazione di un pacchetto DAC se è configurata la funzionalità Always Encrypted

Per pubblicare il pacchetto di applicazione livello dati se Always Encrypted è configurato nel pacchetto di applicazione livello dati o nel database di destinazione, potrebbero essere necessarie alcune o tutte le autorizzazioni seguenti, a seconda delle differenze tra lo schema nel pacchetto di applicazione livello dati e lo schema del database di destinazione.

MODIFICARE QUALSIASI COLUMN MASTER KEY, MODIFICARE QUALSIASI COLUMN ENCRYPTION KEY, DEFINIZIONE DI QUALSIASI VIEWCOLUMN MASTER KEY, DEFINIZIONE DI QUALSIASI VIEWCOLUMN ENCRYPTION KEY

Se l'operazione di aggiornamento attiva un'operazione di crittografia dei dati, sono necessarie anche le autorizzazioni dell'archivio di chiavi per accedere e usare la chiave master della colonna. Per informazioni dettagliate sulle autorizzazioni dell'archivio di chiavi, vedere Creare e archiviare chiavi master della colonna per Always Encrypted e consultare la sezione relativa all'archivio di chiavi.