Configurare la crittografia delle colonne sul posto con il pacchetto di applicazione livello dati

Si applica a: SQL Server Database 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.

Nota

Se si usa SQL Server 2019 (15.x) o versioni successive oppure Database SQL di Azure e se l'istanza di SQL Server o il database sono configurati con un'enclave sicura, è possibile eseguire le operazioni di crittografia sul posto, senza dover trasferire i dati all'esterno del database. Vedere Configurare la crittografia delle colonne sul posto usando Always Encrypted con enclave sicure. Per attivare la crittografia sul posto con un pacchetto di applicazione livello dati, l'utente deve specificare le proprietà EnclaveAttestationProtocol e EnclaveAttestationUrl.

Autorizzazioni per la pubblicazione di un pacchetto di applicazione livello dati se è configurata la funzionalità Always Encrypted con enclave sicure

Per pubblicare un pacchetto di applicazione livello dati se Always Encrypted è configurato con le enclave sicure nel file del pacchetto di applicazione livello datie/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 del pacchetto di applicazione livello dati 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 Effettuare il provisioning delle chiavi abilitate per l'enclave e consultare la sezione relativa all'archivio di chiavi.

Passaggi successivi

Vedi anche