Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Om du vill läsa in krypterade data utan att utföra metadatakontroller på servern under masskopieringsåtgärder skapar du användaren med alternativet ALLOW_ENCRYPTED_VALUE_MODIFICATIONS . Det här alternativet är avsett att användas av äldre verktyg eller ETL-arbetsflöden (Extract-Transform-Load) från tredje part som inte kan använda Always Encrypted. På så sätt kan en användare på ett säkert sätt flytta krypterade data från en uppsättning tabeller, som innehåller krypterade kolumner, till en annan uppsättning tabeller med krypterade kolumner (i samma eller en annan databas).
Alternativet "ALLOW_ENCRYPTED_VALUE_MODIFICATIONS"
Både CREATE USER och ALTER USER har ett ALLOW_ENCRYPTED_VALUE_MODIFICATIONS alternativ. När värdet ON är (standardvärdet är OFF) undertrycker det här alternativet kryptografiska metadatakontroller på servern i masskopieringsåtgärder, vilket gör att användaren kan masskopiera krypterade data mellan tabeller eller databaser, utan att dekryptera data.
Scenarier för datamigrering
I följande tabell visas de rekommenderade inställningar som är lämpliga för flera migreringsscenarier.
Massinläsning av krypterade data
Använd följande process för att läsa in krypterade data.
Ange alternativet till
ONför användaren i databasen som är målet för masskopieringsåtgärden. Till exempel:ALTER USER Bob WITH ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = ON;Kör ditt masskopieringsprogram eller verktyg och anslut som den användaren. (Om ditt program använder en Always Encrypted-aktiverad klientdrivrutin kontrollerar du att anslutningssträngen för datakällan inte innehåller
column encryption setting=enabledför att säkerställa att data som hämtas från krypterade kolumner förblir krypterade. Mer information finns i Utveckla program med Always Encrypted.)Ställ tillbaka alternativet
ALLOW_ENCRYPTED_VALUE_MODIFICATIONSpåOFF. Till exempel:ALTER USER Bob WITH ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = OFF;
Potential för skadade data
Felaktig användning av det här alternativet kan leda till att data skadas. Med ALLOW_ENCRYPTED_VALUE_MODIFICATIONS alternativet kan användaren infoga data i krypterade kolumner i databasen, inklusive data som krypterats med olika nycklar, felaktigt krypterade eller inte krypterade alls. Om användaren av misstag kopierar data som inte är korrekt krypterade med hjälp av krypteringsschemat (kolumnkrypteringsnyckel, algoritm, krypteringstyp) som konfigurerats för målkolumnen kan du inte dekryptera data (data är skadade). Det här alternativet måste användas noggrant eftersom det kan leda till att data i databasen skadas.
Följande scenario visar hur felaktig import av data kan leda till skadade data:
Alternativet är inställt på
ONför en användare.Användaren kör programmet som ansluter till databasen. Programmet använder mass-API:er för att infoga oformaterade textvärden i krypterade kolumner. Programmet förväntar sig att en Always Encrypted-aktiverad klientdrivrutin krypterar data vid infogning. Programmet är dock felkonfigurerat, så att det antingen använder en drivrutin som inte stöder Always Encrypted eller så innehåller
column encryption setting=enabledanslutningssträngen inte .Programmet skickar klartextvärden till servern. Eftersom krypteringsmetadatakontroller är inaktiverade på servern för användaren låter servern felaktiga data (klartext i stället för korrekt krypterad chiffertext) infogas i en krypterad kolumn.
Samma eller ett annat program ansluter till databasen med en Always Encrypted-aktiverad drivrutin och med
column encryption setting=enabledi anslutningssträngen och hämtar data. Programmet förväntar sig att data dekrypteras transparent. Drivrutinen kan dock inte dekryptera data eftersom data är felaktig chiffertext.
Bästa praxis
Använd avsedda användarkonton för långvariga arbetsbelastningar med det här alternativet.
För kort körning av masskopieringsprogram eller verktyg som behöver flytta krypterade data utan att dekryptera dem, anger du alternativet till ON omedelbart innan du kör programmet och ställer in det på AV omedelbart efter att åtgärden har körts.
Använd inte det här alternativet för att utveckla nya program. Använd i stället en klientdrivrutin som erbjuder ett API för att förhindra kryptografiska metadatakontroller för en enda session, till exempel AllowEncryptedValueModifications alternativet i .NET Framework Data Provider för SQL Server – se Kopiera krypterade data med sqlBulkCopy.