Eseguire la migrazione di dati da o verso colonne usando Always Encrypted con l'Importazione/Esportazione guidata SQL Server

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

Lo strumento Importazione/Esportazione guidata SQL Server consente di copiare dati da un'origine a una destinazione. Questo documento descrive come usare l'Importazione/Esportazione guidata SQL Server se un'origine e/o una destinazione è un database di SQL Server che contiene colonne protette con Always Encrypted.

Scenari di migrazione

Con l'Importazione/Esportazione guidata SQL Server è possibile implementare gli scenari seguenti per la migrazione di dati da e verso colonne crittografate.

Crittografare i dati in testo non crittografato durante la migrazione

Se l'origine dati contiene dati in testo non crittografato e la destinazione è un database di SQL Server contenente colonne crittografate, è possibile usare l'Importazione/Esportazione guidata SQL Server per recuperare i dati in testo non crittografato dall'origine, crittografarli e quindi copiarli nelle colonne crittografate del database di destinazione. Per questo scenario di migrazione, l'origine dati può essere qualsiasi archivio dati supportato dall'Importazione/Esportazione guidata SQL Server. Ad esempio, un file, un database di SQL Server o un database in un altro sistema di database.

Per assicurarsi che l'Importazione/Esportazione guidata SQL Server possa crittografare i dati, è necessario abilitare Always Encrypted per la connessione al database di destinazione, oltre che avere accesso alle chiavi che proteggono i dati nelle colonne del database di destinazione. Per altre informazioni, vedere Abilitare e disabilitare Always Encrypted per una connessione di database e Autorizzazioni per crittografare o decrittografare i dati durante la migrazione.

Decrittografare i dati crittografati durante la migrazione

Se si sta eseguendo la migrazione di dati archiviati in colonne di database crittografate in un database di SQL Server, è possibile configurare l'Importazione/Esportazione guidata SQL Server in modo da decrittografare i dati e quindi copiarli in una destinazione, che può essere qualsiasi archivio dati di SQL Server L'Importazione/Esportazione guidata supporta, ad esempio, un file, un database di SQL Server o un database in un altro sistema di database.

Per assicurarsi che l'Importazione/Esportazione guidata SQL Server possa decrittografare i dati, è necessario abilitare Always Encrypted per la connessione al database di origine, oltre che avere accesso alle chiavi che proteggono i dati nelle colonne del database di origine. Per altre informazioni, vedere Abilitare e disabilitare Always Encrypted per una connessione di database e Autorizzazioni per crittografare o decrittografare i dati durante la migrazione.

Crittografare nuovamente i dati durante la migrazione

Se si stanno copiando i dati dalle colonne crittografate di un database di SQL Server di origine alle colonne crittografate nello stesso o in un altro database di SQL Server, è possibile configurare l'Importazione/Esportazione guidata SQL Server in modo da decrittografare i dati dopo averli recuperati dall'origine e quindi crittografarli di nuovo prima di inserirli nelle colonne crittografate del database di destinazione. Usare questo metodo se lo schema delle colonne di destinazione, ad esempio i tipi di dati, i tipi di crittografia e le chiavi di crittografia delle colonne, è diverso dallo schema delle colonne di origine.

Per assicurarsi che l'Importazione/Esportazione guidata SQL Server possa crittografare e decrittografare i dati, è necessario abilitare Always Encrypted per la connessione al database di destinazione e per la connessione al database di destinazione, oltre che avere accesso alle chiavi che proteggono i dati nelle colonne di entrambi i database. Per altre informazioni, vedere Abilitare e disabilitare Always Encrypted per una connessione di database e Autorizzazioni per crittografare o decrittografare i dati durante la migrazione.

Mantenere i dati crittografati durante la migrazione

Se si stanno copiando i dati dalle colonne crittografate di un database di SQL Server di origine alle colonne crittografate nello stesso o in un altro database di SQL Server e le colonne di destinazione usano esattamente lo stesso schema delle colonne di destinazione (inclusi tipi di dati, tipi di crittografia e chiavi di crittografia delle colonne), è possibile configurare l'Importazione/Esportazione guidata SQL Server in modo da recuperare il testo crittografato dalle colonne di origine e inserire i dati crittografati nelle colonne crittografate del database di SQL Server di destinazione.

Per questo scenario, è possibile usare qualsiasi provider di dati che supporti SQL Server per connettersi al database di SQL Server di origine o di destinazione. Se si usa un provider che supporta Always Encrypted per la connessione al database di destinazione, è necessario assicurarsi che Always Encrypted sia disabilitato per la connessione di database. Per altre informazioni, vedere Abilitare e disabilitare Always Encrypted per una connessione di database.

È anche necessario assicurarsi che l'entità di database (utente) usata dall'Importazione/Esportazione guidata SQL Server per connettersi al database di destinazione sia configurata con l'opzione ALLOW_ENCRYPTED_VALUE_MODIFICATIONS impostata su ON. Questa opzione disattiva i controlli sui metadati di crittografia nel server nelle operazioni di copia bulk, il che consente alla procedura guidata di inserire in blocco i dati crittografati nel database di destinazione senza decrittografarli. Per altre informazioni, vedere Caricamento bulk di dati crittografati in colonne tramite Always Encrypted.

Abilitare e disabilitare Always Encrypted per una connessione di database

Se lo scenario di migrazione richiede che l'Importazione/Esportazione guidata SQL Server sia in grado di crittografare e/o decrittografare i dati, è necessario configurare la connessione al database di SQL Server di origine e/o la connessione al database di SQL Server di destinazione usando un provider di dati che supporti Always Encrypted. È anche necessario abilitare Always Encrypted per la connessione al database di origine e/o di destinazione.

Se non è necessario che la procedura guidata crittografi o decrittografi i dati di una connessione, per tale connessione è possibile usare qualsiasi provider di dati.

I provider di dati seguenti nell'Importazione/Esportazione guidata SQL Server supportano Always Encrypted.

Autorizzazioni per crittografare o decrittografare i dati durante la migrazione

Per crittografare o decrittografare i dati archiviati in un database di SQL Server di origine o destinazione, sono necessarie le autorizzazioni VIEW ANY COLUMN MASTER KEY DEFINITION e VIEW ANY COLUMN ENCRYPTION KEY DEFINITION nel database di origine. 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 necessarie per le operazioni di gestione delle chiavi, vedere Creare e archiviare chiavi master della colonna per Always Encrypted e trovare la sezione relativa all'archivio di chiavi.

Passaggi successivi

Vedi anche