Eseguire la migrazione di dati da o verso colonne usando Always Encrypted con l'Importazione/Esportazione guidata SQL Server
Si applica a: SQL Server Database SQL di Azure Istanza 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.
- Provider di dati .NET Framework per SQL Server
- Verificare che il computer in cui viene eseguita la procedura guidata usi .NET Framework 4.6.1 o versione successiva.
- Per abilitare Always Encrypted per una connessione, impostare
Column Encryption Setting
suEnabled
nelle proprietà di connessione. Per disabilitare Always Encrypted, impostareColumn Encryption Setting
suDisabled
. Per altre informazioni, vedere Connettersi a SQL Server con il provider di dati .NET Framework per SQL Server e Abilitazione di Always Encrypted per le query dell'applicazione.
- Provider di dati .NET Framework per ODBC.
- Installare Microsoft ODBC Driver 13.1 o versione successiva.
- Per abilitare Always Encrypted per una connessione, impostare
Column Encryption
suEnabled
nelle proprietà di connessione. Per disabilitare Always Encrypted, impostareColumn Encryption
suDisabled
. Per altre informazioni, vedere Connettersi a SQL Server con il driver ODBC per SQL Server e Abilitazione di Always Encrypted in un'applicazione ODBC.
- Per abilitare Always Encrypted per una connessione, impostare
- Installare Microsoft ODBC Driver 13.1 o versione successiva.
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
- Eseguire query sulle colonne usando Always Encrypted con SQL Server Management Studio
- Sviluppare applicazioni usando Always Encrypted