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 alternativet ALLOW_ENCRYPTED_VALUE_MODIFICATIONS. När värdet är PÅ (standardvärdet är OFF) undertrycker det här alternativet krypteringsmetadatakontroller 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 PÅ fö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 kolumnkrypteringsinställning=aktiverad fö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 in alternativet ALLOW_ENCRYPTED_VALUE_MODIFICATIONS tillbaka till AV. 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 alternativet ALLOW_ENCRYPTED_VALUE_MODIFICATIONS kan användaren infoga data i krypterade kolumner i databasen, inklusive data som är krypterade 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 kommer du inte att kunna dekryptera data (data kommer att skadas). 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å PÅ fö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 att anslutningssträngen inte innehåller kolumnkrypteringsinställning=aktiverad.
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 kolumnkrypteringsinställning=aktiverad i 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 korta program eller verktyg för masskopiering som behöver flytta krypterade data utan att dekryptera dem ställer du in alternativet på PÅ 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 alternativet AllowEncryptedValueModifications i .NET Framework Data Provider för SQL Server – se Kopiera krypterade data med SqlBulkCopy.
Nästa steg
- Frågekolumner med Always Encrypted med SQL Server Management Studio
- Utveckla program med Always Encrypted