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
V tomto kurzu se naučíte, jak začít používat funkci Always Encrypted. Zobrazí se vám:
- Postup šifrování vybraných sloupců v databázi
- Jak dotazovat šifrované sloupce
Poznámka:
Pokud hledáte informace o funkci Always Encrypted se zabezpečenými enklávy, projděte si místo toho následující kurzy:
Požadavky
Pro účely tohoto kurzu potřebujete:
- Prázdná databáze ve službě Azure SQL Database, Azure SQL Managed Instance nebo SQL Serveru. Následující pokyny předpokládají, že název databáze je ContosoHR. Musíte být vlastníkem databáze (členem role db_owner ). Informace o tom, jak vytvořit databázi, najdete v tématu Rychlý start: Vytvoření izolované databáze – Azure SQL Database nebo Vytvoření databáze na SQL Serveru.
- Volitelné, ale doporučené, zejména pokud je vaše databáze v Azure: trezor klíčů ve službě Azure Key Vault. Informace o tom, jak vytvořit trezor klíčů, najdete v tématu Rychlý start: Vytvoření trezoru klíčů pomocí webu Azure Portal.
- Pokud váš trezor klíčů používá model oprávnění zásad přístupu, ujistěte se, že máte v trezoru klíčů následující oprávnění:
get,list,create,unwrap key,wrap key,verify,sign. Viz Přiřazení zásad přístupu ke službě Key Vault. - Pokud používáte model oprávnění řízení přístupu na základě role (RBAC) Azure, ujistěte se, že jste členem role kryptografického důstojníka služby Key Vault pro váš trezor klíčů. Viz Poskytnutí přístupu ke klíčům, certifikátům a tajným kódům služby Key Vault pomocí řízení přístupu na základě role v Azure.
- Pokud váš trezor klíčů používá model oprávnění zásad přístupu, ujistěte se, že máte v trezoru klíčů následující oprávnění:
- Nejnovější verze aplikace SQL Server Management Studio (SSMS) nebo nejnovější verze modulů SqlServer a Az PowerShell. Modul Az PowerShell se vyžaduje jenom v případě, že používáte Azure Key Vault.
Krok 1: Vytvoření a naplnění schématu databáze
V tomto kroku vytvoříte schéma personálního oddělení a tabulku Zaměstnanci . Pak naplníte tabulku některými daty.
Připojte se k databázi. Pokyny k připojení k databázi z aplikace SSMS najdete v tématu Rychlý start: Připojení a dotazování služby Azure SQL Database nebo azure SQL Managed Instance pomocí aplikace SQL Server Management Studio (SSMS) nebo rychlý start: Připojení a dotazování instance SQL Serveru pomocí aplikace SQL Server Management Studio (SSMS).
Otevřete nové okno dotazu pro databázi ContosoHR .
Vložte následující příkazy a spusťte následující příkazy a vytvořte novou tabulku s názvem Zaměstnanci.
CREATE SCHEMA [HR]; GO CREATE TABLE [HR].[Employees] ( [EmployeeID] [int] IDENTITY(1,1) NOT NULL , [SSN] [char](11) NOT NULL , [FirstName] [nvarchar](50) NOT NULL , [LastName] [nvarchar](50) NOT NULL , [Salary] [money] NOT NULL ) ON [PRIMARY];Vložte a spusťte následující příkazy a přidejte do tabulky Employees několik záznamů o zaměstnancích.
INSERT INTO [HR].[Employees] ( [SSN] , [FirstName] , [LastName] , [Salary] ) VALUES ( '795-73-9838' , N'Catherine' , N'Abel' , $31692 ); INSERT INTO [HR].[Employees] ( [SSN] , [FirstName] , [LastName] , [Salary] ) VALUES ( '990-00-6818' , N'Kim' , N'Abercrombie' , $55415 );
Krok 2: Šifrování sloupců
V tomto kroku vytvoříte hlavní klíč sloupce a šifrovací klíč sloupce pro funkci Always Encrypted. Potom zašifrujete sloupce SSN a Plat v tabulce Zaměstnanci .
SSMS poskytuje průvodce, který vám pomůže snadno nakonfigurovat funkci Always Encrypted nastavením hlavního klíče sloupce, šifrovacího klíče sloupce a šifrováním vybraných sloupců.
V Průzkumníku objektů rozbalte databáze>ContosoHR>Tables.
Klikněte pravým tlačítkem myši na tabulku Employees (Zaměstnanci) a vyberte Encrypt Columns (Šifrovat sloupce), čímž otevřete průvodce Always Encrypted.
Na úvodní stránce průvodce vyberte Další.
Na stránce Výběr sloupce .
- Vyberte sloupce SSN a Plat . Zvolte deterministické šifrování pro sloupec SSN a náhodné šifrování sloupce Plat . Deterministické šifrování podporuje dotazy, jako jsou vyhledávání bodů, které zahrnují porovnání rovnosti u šifrovaných sloupců. Náhodné šifrování nepodporuje žádné výpočty u šifrovaných sloupců.
- U obou sloupců ponechte CEK-Auto1 (Nový) jako šifrovací klíč sloupce. Tento klíč ještě neexistuje a průvodce ho vygeneruje.
- Vyberte Další.
Na stránce Konfigurace hlavního klíče nakonfigurujte nový hlavní klíč sloupce, který průvodce vygeneruje. Nejprve musíte vybrat, kam chcete uložit hlavní klíč sloupce. Průvodce podporuje dva typy úložiště klíčů:
- Azure Key Vault – doporučuje se, pokud je vaše databáze v Azure.
- Úložiště certifikátů Systému Windows
Azure Key Vault je obecně doporučenou možností, zejména pokud je vaše databáze v Azure.
Použití služby Azure Key Vault:
- Vyberte Azure Key Vault.
- Vyberte Přihlásit se a dokončete přihlášení k Azure.
- Po přihlášení se na stránce zobrazí seznam předplatných a trezorů klíčů, ke kterým máte přístup. Vyberte předplatné Azure obsahující trezor klíčů, které chcete použít.
- Vyberte své klíčové úložiště.
- Vyberte Další.
Použití úložiště certifikátů systému Windows:
Vyberte úložiště certifikátů Systému Windows.
Ponechte výchozí výběr Aktuální uživatel – tím dáte průvodci pokyn, aby vygeneroval certifikát (váš nový hlavní klíč sloupce) v úložišti Aktuální uživatel.
Vyberte Další.
Na stránce Nastavení šifrování In-Place není nutná žádná další konfigurace, protože databáze nemá povolenou enklávu. Vyberte Další.
Na stránce Nastavení spuštění se zobrazí dotaz, jestli chcete pokračovat v šifrování nebo vygenerovat skript PowerShellu, který se má spustit později. Ponechte výchozí nastavení a vyberte Další.
Na stránce Souhrn vás průvodce informuje o akcích, které provede. Zkontrolujte správnost všech informací a vyberte Dokončit.
Na stránce Výsledky můžete sledovat průběh operací průvodce. Počkejte, až se všechny operace úspěšně dokončí, a vyberte Zavřít.
(Volitelné) Prozkoumejte změny, které průvodce provedl ve vaší databázi.
Rozbalte sekci Zabezpečení ContosoHR>>klíče Always Encrypted, abyste prozkoumali objekty metadat pro hlavní klíč sloupce a šifrování sloupce, které vytvořil průvodce.
Můžete také spustit následující dotazy na zobrazení katalogu systému, která obsahují klíčová metadata.
SELECT * FROM sys.column_master_keys; SELECT * FROM sys.column_encryption_keys SELECT * FROM sys.column_encryption_key_valuesV Průzkumníku objektů klikněte pravým tlačítkem na tabulku Employees (Zaměstnanci) a vyberte Script Table as>CREATE To>). Otevře se nové okno dotazu s příkazem CREATE TABLE pro tabulku Employees . Všimněte si klauzule ENCRYPTED WITH , která se zobrazí v definicích sloupců SSN a Plat .
Můžete také spustit následující dotaz na sys.columns a načíst metadata šifrování na úrovni sloupce pro dva šifrované sloupce.
SELECT [name] , [encryption_type] , [encryption_type_desc] , [encryption_algorithm_name] , [column_encryption_key_id] FROM sys.columns WHERE [encryption_type] IS NOT NULL;
Krok 3: Dotazování šifrovaných sloupců
Připojte se k databázi se zakázaným funkcí Always Encrypted pro vaše připojení.
- Otevřete nové okno dotazu.
- Klikněte pravým tlačítkem na libovolné místo v okně dotazu a vyberte Připojení>změnit připojení. Tím se otevře dialogové okno Připojit k databázovému stroji .
- Vyberte Možnosti <<. Zobrazí se další karty v dialogovém okně Připojit k databázovému stroji .
- Vyberte kartu s názvem Always Encrypted.
- Ujistěte se, že není zaškrtnuté políčko Povolit funkci Always Encrypted (šifrování sloupců ).
- Vyberte Připojit.
Vložte a spusťte následující dotaz. Dotaz by měl vrátit binární šifrovaná data.
SELECT [SSN], [Salary] FROM [HR].[Employees]
Připojte se k databázi s povolenou funkcí Always Encrypted pro vaše připojení.
- Klikněte pravým tlačítkem na libovolné místo v okně dotazu a vyberte Připojení>změnit připojení. Tím se otevře dialogové okno Připojit k databázovému stroji .
- Vyberte Možnosti <<. Zobrazí se další karty v dialogovém okně Připojit k databázovému stroji .
- Vyberte kartu s názvem Always Encrypted.
- Vyberte Povolit funkci Always Encrypted (šifrování sloupců).
- Vyberte Připojit.
Znovu spusťte stejný dotaz. Vzhledem k tomu, že jste připojení ke službě Always Encrypted pro připojení k databázi, pokusí se ovladač klienta v SSMS dešifrovat data uložená v obou šifrovaných sloupcích. Pokud používáte Azure Key Vault, může se zobrazit výzva k přihlášení k Azure.
Povolte parametrizaci pro funkci Always Encrypted. Tato funkce umožňuje spouštět dotazy, které filtrují data šifrovanými sloupci (nebo vkládají data do šifrovaných sloupců).
- V hlavní nabídce aplikace SSMS vyberte Dotaz .
- Vyberte Možnosti dotazu....
- Přejděte doProvádění>Upřesnit.
- Ujistěte se, že je zaškrtnuté povolení parametrizace pro funkci Always Encrypted .
- Vyberte OK.
Vložte a spusťte následující dotaz, který filtruje data podle šifrovaného sloupce SSN . Dotaz by měl vrátit jeden řádek obsahující hodnoty prostého textu.
DECLARE @SSN [char](11) = '795-73-9838' SELECT [SSN], [Salary] FROM [HR].[Employees] WHERE [SSN] = @SSNPokud používáte Službu Azure Key Vault nakonfigurovanou s modelem oprávnění zásad přístupu, postupujte podle následujících kroků a zjistěte, co se stane, když se uživatel pokusí načíst data prostého textu ze šifrovaných sloupců, aniž byste měli přístup k hlavnímu klíči sloupce, který chrání data.
- Odeberte klíčové oprávnění
unwrapsami sobě v přístupových zásadách vašeho trezoru klíčů. Další informace najdete v tématu Přiřazení zásad přístupu ke službě Key Vault. - Vzhledem k tomu, že ovladač klienta v SSMS ukládá šifrovací klíče sloupců získané z trezoru klíčů po dobu 2 hodin, zavřete SSMS a znovu ho otevřete. Tím zajistíte, že je mezipaměť klíčů prázdná.
- Připojte se k databázi s povolenou funkcí Always Encrypted pro vaše připojení.
- Vložte a spusťte následující dotaz. Dotaz by měl selhat s chybovou zprávou, že chybí požadovaná
unwrapoprávnění.
SELECT [SSN], [Salary] FROM [HR].[Employees]- Odeberte klíčové oprávnění
Další kroky
Viz také
- Dokumentace ke službě Always Encrypted
- Dokumentace ke službě Always Encrypted se zabezpečenými enklávy
- Zřízení klíčů Always Encrypted pomocí aplikace SQL Server Management Studio
- Konfigurace funkce Always Encrypted pomocí PowerShellu
- Průvodce Always Encrypted
- Dotazování na sloupce pomocí Always Encrypted v SQL Server Management Studio