Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
azure SQL Managed Instance
Pokud chcete načíst šifrovaná data bez provádění kontrol metadat na serveru během operací hromadného ALLOW_ENCRYPTED_VALUE_MODIFICATIONS kopírování, vytvořte uživatele s možností. Tato možnost je určena pro použití staršími nástroji nebo pracovními postupy typu Extrakce-Transformace-Načítání (ETL) třetích stran, které nemohou používat funkci "Always Encrypted". To umožňuje uživateli bezpečně přesouvat šifrovaná data z jedné sady tabulek obsahující šifrované sloupce do jiné sady tabulek s šifrovanými sloupci (ve stejné nebo jiné databázi).
Možnost ALLOW_ENCRYPTED_VALUE_MODIFICATIONS
CREATE USER i ALTER USER mají ALLOW_ENCRYPTED_VALUE_MODIFICATIONS možnost. Pokud je ONtato možnost nastavená na OFF hodnotu (výchozí nastavení), potlačí kontroly kryptografických metadat na serveru v operacích hromadného kopírování, což uživateli umožňuje hromadně kopírovat šifrovaná data mezi tabulkami nebo databázemi bez dešifrování dat.
Scénáře migrace dat
Následující tabulka uvádí doporučená nastavení vhodná pro několik scénářů migrace.
Hromadně načíst šifrovaná data
K načtení šifrovaných dat použijte následující postup.
Nastavte možnost pro
ONuživatele v databázi, která je cílem operace hromadného kopírování. Například:ALTER USER Bob WITH ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = ON;Spusťte aplikaci nebo nástroj hromadného kopírování s přihlášením jako daný uživatel. (Pokud vaše aplikace používá klientský ovladač s povolenou funkcí Always Encrypted, ujistěte se, že připojovací řetězec pro zdroj dat neobsahuje
column encryption setting=enabled, aby data načtená ze šifrovaných sloupců zůstala zašifrovaná. Další informace najdete v tématu Vývoj aplikací pomocí funkce Always Encrypted.)ALLOW_ENCRYPTED_VALUE_MODIFICATIONSNastavte možnost zpět naOFF. Například:ALTER USER Bob WITH ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = OFF;
Potenciál poškození dat
Nesprávné použití této možnosti může vést k poškození dat. Tato ALLOW_ENCRYPTED_VALUE_MODIFICATIONS možnost umožňuje uživateli vložit všechna data do šifrovaných sloupců v databázi, včetně dat šifrovaných pomocí různých klíčů, nesprávně zašifrovaných nebo vůbec nešifrovaných. Pokud uživatel omylem zkopíruje data, která nejsou správně zašifrovaná pomocí schématu šifrování (šifrovací klíč sloupce, algoritmus, typ šifrování) nastaveného pro cílový sloupec, nemůžete data dešifrovat (data jsou poškozená). Tato možnost se musí používat pečlivě, protože může vést k poškození dat v databázi.
Následující scénář ukazuje, jak nesprávné importování dat může vést k poškození dat:
Možnost je nastavena na
ONpro uživatele.Uživatel spustí aplikaci, která se připojí k databázi. Aplikace používá hromadná rozhraní API k vložení hodnot prostého textu do šifrovaných sloupců. Aplikace očekává, že ovladač klienta s podporou Always Encrypted zašifruje data při vložení. Aplikace je však chybně nakonfigurovaná, takže buď skončí pomocí ovladače, který nepodporuje funkci Always Encrypted, nebo připojovací řetězec neobsahuje
column encryption setting=enabled.Aplikace odešle na server hodnoty prostého textu. Vzhledem k tomu, že jsou na serveru pro uživatele zakázány kontroly kryptografických metadat, server umožňuje vložení nesprávných dat (místo správně šifrovaného šifrovacího textu) do šifrovaného sloupce.
Stejná nebo jiná aplikace se připojí k databázi pomocí ovladače s podporou Always Encrypted a s připojovacím řetězcem
column encryption setting=enableda načte data. Aplikace očekává transparentní dešifrování dat. Ovladač však nedokáže dešifrovat data, jelikož se jedná o nesprávný šifrový text.
Osvědčené postupy
Pomocí této možnosti používejte určené uživatelské účty pro dlouhotrvající úlohy.
U krátkých spuštěných aplikací nebo nástrojů hromadného kopírování, které potřebují přesunout šifrovaná data bez jejich dešifrování, nastavte možnost bezprostředně ON před spuštěním aplikace a ihned po spuštění operace ji nastavte zpět na VYPNUTO.
Tuto možnost nepoužívejte pro vývoj nových aplikací. Místo toho použijte klientský ovladač, který nabízí rozhraní API pro potlačení kontroly kryptografických metadat v rámci jedné relace, například možnost ve zprostředkovateli dat rozhraní .NET Framework pro SQL Server – viz Kopírování šifrovaných dat pomocí SqlBulkCopy.
Související obsah
- funkce Always Encrypted
- Migrace dat do sloupců nebo ze sloupců pomocí funkce Always Encrypted s průvodcem importem a exportem SQL Serveru
- CREATE USER (Transact-SQL)
-
ALTER USER (Transact-SQL) - Dotazování na sloupce pomocí Always Encrypted v SQL Server Management Studio
- Vývoj aplikací pomocí funkce Always Encrypted