Konfigurera kolumnkryptering med Always Encrypted med ett DAC-paket

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

Ett DAC-paket (Data Tier Application), även kallat DACPAC, är en portabel enhet för SQL Server-databasdistribution som definierar alla SQL Server-objekt, inklusive tabeller och kolumner i tabellerna. När du publicerar en DACPAC till en databas (när du uppgraderar en databas med hjälp av en DACPAC) uppdateras schemat för måldatabasen så att det matchar schemat i DACPAC. Du kan publicera en DACPAC med hjälp av guiden Uppgradera datanivåprogram i SQL Server Management Studio, PowerShell eller sqlpackage.

Den här artikeln tar upp särskilda överväganden för att uppgradera en databas när DACPAC eller/och måldatabasen innehåller kolumner som skyddas med Always Encrypted. Om krypteringsschemat för en kolumn i DACPAC skiljer sig från krypteringsschemat för en befintlig kolumn i måldatabasen resulterar publicering av DACPAC i kryptering, dekryptering eller omkryptering av data som lagras i kolumnen. Mer information finns i tabellen nedan.

Tillstånd Åtgärd
Kolumnen krypteras i DACPAC och krypteras inte i databasen. Data i kolumnen krypteras.
Kolumnen krypteras inte i DACPAC och krypteras i databasen. Data i kolumnen dekrypteras (krypteringen tas bort för kolumnen).
Kolumnen krypteras både i DACPAC och databasen, men kolumnen i DACPAC använder en annan krypteringstyp eller/och en annan kolumnkrypteringsnyckel än motsvarande kolumn i databasen. Data i kolumnen dekrypteras och krypteras sedan igen för att matcha krypteringskonfigurationen i DACPAC.

Distribution av ett DAC-paket kan också leda till att metadataobjekt skapas eller tas bort för kolumnhuvudnycklar eller kolumnkrypteringsnycklar för Always Encrypted.

Prestandaöverväganden

För att utföra kryptografiska åtgärder måste ett verktyg som du använder för att distribuera en DACPAC flytta data från databasen. Verktyget skapar en ny tabell (eller tabeller) med önskad krypteringskonfiguration i databasen, läser in alla data från de ursprungliga tabellerna, utför de begärda kryptografiska åtgärderna, laddar upp data till de nya tabellerna och byter sedan de ursprungliga tabellerna med de nya tabellerna. Det kan ta lång tid att köra kryptografiska åtgärder. Under den tiden är databasen inte tillgänglig för att skriva transaktioner.

Anmärkning

Om du använder SQL Server 2019 (15.x) och SQL Server-instansen har konfigurerats med en säker enklav kan du köra kryptografiska åtgärder på plats utan att flytta data från databasen. Se Konfigurera kolumnkryptering på plats med Always Encrypted med säkra enklaver. Observera att kryptering på plats inte är tillgänglig för DACPAC-distributioner.

Behörigheter för att publicera ett DAC-paket om Always Encrypted har konfigurerats

Om du vill publicera DAC-paketet om Always Encrypted har konfigurerats i DACPAC eller/och i måldatabasen kan du behöva vissa eller alla behörigheter nedan, beroende på skillnaderna mellan schemat i DACPAC och måldatabasschemat.

ÄNDRA VALFRI KOLUMNMÄSTERNYCKEL, ÄNDRA VALFRI KOLUMNKRYPTERINGSNYCKEL, VISA VALFRI KOLUMNMÄSTERNYCKELDEFINITION, VISA VALFRI KOLUMNKRYPTERINGSNYCKELDEFINITION

Om uppgraderingsåtgärden utlöser en datakrypteringsåtgärd behöver du även behörigheter för nyckellagring för att komma åt och använda kolumnhuvudnyckeln. Detaljerad information om nyckellagringsbehörigheter finns i Skapa och lagra kolumnhuvudnycklar för Always Encrypted och hitta ett avsnitt som är relevant för ditt nyckelarkiv.

Nästa steg

Se även