Configurare la crittografia delle colonne usando Always Encrypted con un pacchetto di applicazione livello dati

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 DACPAC in un database (ovvero, quando si aggiorna un database usando un pacchetto DACPAC), lo schema del database di destinazione viene aggiornato in modo da corrispondere allo schema del pacchetto DACPAC. È possibile pubblicare un pacchetto DACPAC seguendo la procedura guidata Aggiorna applicazione di livello dati in SQL Server Management Studio, PowerShell o SqlPackage.

In questo articolo vengono illustrate alcune considerazioni speciali per l'aggiornamento di un database quando il pacchetto DACPAC o/e il database di destinazione contiene 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 è crittografata sia nel file DACPAC che nel database, ma la colonna nel file DACPAC usa un tipo diverso di crittografia e/o una chiave di crittografia della 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 la scrittura di transazioni.

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. Vedere Configurare la crittografia delle colonne sul posto usando Always Encrypted con enclave sicure. La crittografia sul posto non è disponibile per le distribuzioni di pacchetti DACPAC.

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

Per pubblicare un pacchetto DAC con Always Encrypted configurato nel file DACPAC o nel database di destinazione, potrebbero essere necessarie alcune o tutte le autorizzazioni indicate di seguito, in base alle differenze tra lo schema nel file DACPAC e lo schema del database di destinazione.

ALTER ANY COLUMN MASTER KEY, ALTER ANY COLUMN ENCRYPTION KEY, VIEW ANY COLUMN MASTER KEY DEFINITION, VIEW ANY COLUMN ENCRYPTION KEY DEFINITION

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.

Passaggi successivi

Vedi anche