Migrera data till eller från kolumner genom att använda Always Encrypted med SQL Server Import and Export Wizard

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

SQL Server Import and Export Wizard är ett verktyg som låter dig kopiera data från en källa till en destination. Den här artikeln beskriver hur man använder SQL Server Import and Export Wizard när källan, destinationen eller båda är en SQL Server-databas som innehåller kolumner skyddade med Always Encrypted.

Migreringsscenarier

Med guiden Importera och exportera SQL Server kan du implementera följande scenarier för att migrera data till eller från krypterade kolumner.

Kryptera klartextdata vid migrering

Om din datakälla innehåller klartextdata och din destination är en SQL Server-databas som innehåller krypterade kolumner, kan du använda SQL Server Import and Export Wizard för att hämta klartextdata från källan, kryptera den och kopiera den krypterade datan (chiffertext) till de krypterade kolumnerna i destinationsdatabasen. För detta migreringsscenario kan datakällan vara vilken datalagring som helst som SQL Server Import and Export Wizard stödjer, såsom en fil, en SQL Server-databas eller en databas i ett annat databassystem.

För att säkerställa att SQL Server Import and Export Wizard kan kryptera data, aktivera Always Encrypted för destinationsdatabasanslutningen och se till att du har tillgång till nycklarna som skyddar datan i destinationsdatabasens kolumner. Mer information finns i Aktivera och inaktivera Always Encrypted för en databasanslutning och Behörigheter för kryptering eller dekryptering av data under migrering.

Dekryptera krypterade data vid migrering

Om du migrerar data som lagras i krypterade databaskolumner i en SQL Server-databas kan du konfigurera SQL Server Import and Export Wizard för att dekryptera datan och kopiera den dekrypterade (klartext) datan till en destination. Destinationen kan vara vilken datalagring som helst som SQL Server Import and Export Wizard stödjer, såsom en fil, en SQL Server-databas eller en databas i ett annat databassystem.

För att säkerställa att SQL Server Import and Export Wizard kan dekryptera data, aktivera Always Encrypted för källdatabasanslutningen och se till att du har tillgång till nycklarna som skyddar datan i källdatabasens kolumner. Mer information finns i Aktivera och inaktivera Always Encrypted för en databasanslutning och Behörigheter för kryptering eller dekryptering av data under migrering.

Kryptera om data vid migrering

Om du kopierar data från krypterade kolumner i en käll-SQL Server-databas till krypterade kolumner i samma eller en annan SQL Server-databas, kan du konfigurera SQL Server Import and Export Wizard för att dekryptera datan efter att ha hämtat den från källan, och kryptera om den innan du infogar den i de krypterade kolumnerna i destinationsdatabasen. Använd denna metod om schemat för målkolumnerna, såsom kolumndatatyper, krypteringstyper och kolumnkrypteringsnycklar, skiljer sig från schemat för källkolumnerna.

För att säkerställa att SQL Server Import and Export Wizard kan kryptera och dekryptera data, aktivera Always Encrypted för både källdatabasanslutningen och destinationsdatabasanslutningen, och se till att du har tillgång till nycklarna som skyddar data i både käll- och måldatabasens kolumner. Mer information finns i Aktivera och inaktivera Always Encrypted för en databasanslutning och Behörigheter för kryptering eller dekryptering av data under migrering.

Behåll data krypterade under migreringen

Om du kopierar data från krypterade kolumner i en käll-SQL Server-databas till krypterade kolumner i samma eller någon annan SQL Server-databas, och målkolumnerna använder exakt samma schema som källkolumnerna, inklusive samma datatyper, krypteringstyper och kolumnkrypteringsnycklar, kan du konfigurera SQL Server Import and Export Wizard för att hämta krypterad text från källkolumnerna och infoga den krypterade datan (krypterad text) i den krypterade kolumnen i mål-SQL Server-databasen.

För detta scenario, använd vilken dataleverantör som helst som stödjer SQL Server för att ansluta till källan eller destinationsdatabasen SQL Server. Om du använder en leverantör som stödjer Always Encrypted för att ansluta till destinationsdatabasen, se till att Always Encrypted är avstängt för databasanslutningen. Mer information finns i Aktivera och inaktivera Always Encrypted för en databasanslutning.

Du måste också säkerställa att databasprincipalen (användaren) som SQL Server Import and Export Wizard använder för att ansluta till destinationsdatabasen är konfigurerad med alternativet ALLOW_ENCRYPTED_VALUE_MODIFICATIONS inställt på ON. Detta alternativ undertrycker kryptografiska metadatakontroller på servern vid bulkkopiering, vilket gör att guiden kan massinfoga de krypterade dataene i destinationsdatabasen utan att dekryptera dem. För mer information, se Massinläs krypterade data i kolumner som skyddas med Always Encrypted.

Aktivera och inaktivera Always Encrypted för en databasanslutning

Om ditt migrationsscenario kräver att SQL Server Import and Export Wizard krypterar eller dekrypterar data, konfigurera källanslutningen till SQL Server-databasen, destinationsanslutningen till SQL Server-databasen, eller båda, genom att använda en dataleverantör som stödjer Always Encrypted. Du måste också aktivera Always Encrypted för dessa anslutningar.

Använd vilken dataleverantör som helst för en anslutning om du inte behöver guiden för att kryptera eller dekryptera data på den anslutningen.

Följande dataprovidrar i sql Server-guiden för import och export stöder Always Encrypted.

Behörigheter för kryptering eller dekryptering av data under migreringen

För att kryptera eller dekryptera data som lagras i en SQL Server-käll- eller destinationsdatabas behöver du behörigheterna VIEW ANY COLUMN ENCRYPTION KEY DEFINITION och VIEW ANY COLUMN MASTER KEY DEFINITION i källdatabasen. Du behöver också behörigheter för nyckellagring för att komma åt och använda kolumnhuvudnyckeln. För detaljerad information om de behörigheter för nyckellager som krävs för nyckelhanteringsoperationer, se Skapa och lagra huvudnycklar för kolumner för Always Encrypted och hitta avsnittet som är relevant för ditt nyckellager.