Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
In deze zelfstudie leert u hoe u aan de slag gaat met Always Encrypted. U ziet het volgende:
- Geselecteerde kolommen in uw database versleutelen.
- Een query uitvoeren op versleutelde kolommen.
Opmerking
Als u op zoek bent naar informatie over Always Encrypted met beveiligde enclaves, raadpleegt u in plaats daarvan de volgende zelfstudies:
Vereiste voorwaarden
Voor deze zelfstudie hebt u het volgende nodig:
- Een lege database in Azure SQL Database, Azure SQL Managed Instance, of in SQL Server. In de onderstaande instructies wordt ervan uitgegaan dat de databasenaam ContosoHR is. U moet eigenaar zijn van de database (lid van de db_owner rol). Zie quickstart: Een individuele database maken - Azure SQL Database of een database maken in SQL Server voor meer informatie over het maken van een database.
- Optioneel, maar aanbevolen, vooral als uw database zich in Azure bevindt: een sleutelkluis in Azure Key Vault. Zie quickstart: Een sleutelkluis maken met behulp van Azure Portal voor meer informatie over het maken van een sleutelkluis.
- Als uw sleutelkluis gebruikmaakt van het machtigingsmodel voor toegangsbeleid, moet u ervoor zorgen dat u de volgende sleutelmachtigingen hebt in de sleutelkluis:
get, ,listcreate,unwrap key,wrap key, , .verifysignZie Toegangsbeleid voor Key Vault toewijzen. - Als u het RBAC-machtigingsmodel (op rollen gebaseerd toegangsbeheer) van Azure gebruikt, moet u ervoor zorgen dat u lid bent van de rol Crypto Officer van Key Vault voor uw sleutelkluis. Zie Toegang bieden tot Key Vault-sleutels, -certificaten en -geheimen met een op rollen gebaseerd toegangsbeheer van Azure.
- Als uw sleutelkluis gebruikmaakt van het machtigingsmodel voor toegangsbeleid, moet u ervoor zorgen dat u de volgende sleutelmachtigingen hebt in de sleutelkluis:
- De nieuwste versie van SQL Server Management Studio (SSMS) of de nieuwste versie van de SqlServer - en Az PowerShell-modules. De Az PowerShell-module is alleen vereist als u Azure Key Vault gebruikt.
Stap 1: Het databaseschema maken en vullen
In deze stap maakt u het HR-schema en de tabel Werknemers . Vervolgens vult u de tabel met enkele gegevens.
Maak verbinding met uw database. Voor instructies over het maken van verbinding met een database vanuit SSMS, raadpleegt u
quickstart: Verbinding maken met en query's uitvoeren op een Azure SQL Database of azure SQL Managed Instance met behulp van SQL Server Management Studio (SSMS) ofquickstart: Verbinding maken en query's uitvoeren op een SQL Server-exemplaar met behulp van SQL Server Management Studio (SSMS).> Open een nieuw queryvenster voor de ContosoHR-database .
Plak de onderstaande instructies en voer deze uit om een nieuwe tabel met de naam Werknemers te maken.
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];Plak de onderstaande instructies en voer deze uit om enkele werknemersrecords toe te voegen aan de tabel Werknemers .
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 );
Stap 2: Kolommen versleutelen
In deze stap richt u een kolomhoofdsleutel en een kolomversleutelingssleutel in voor Always Encrypted. Vervolgens versleutelt u de kolommen SSN en Salaris in de tabel Werknemers .
SSMS biedt een wizard waarmee u Always Encrypted eenvoudig kunt configureren door een kolomhoofdsleutel, een kolomversleutelingssleutel in te stellen en geselecteerde kolommen te versleutelen.
In Objectverkenner vouw Databases>ContosoHR>Tabellen uit.
Klik met de rechtermuisknop op de tabel Werknemers en selecteer Kolommen versleutelen om de wizard Always Encrypted te openen.
Selecteer Volgende op de introductiepagina van de wizard.
Op de pagina Kolomselectie .
- Selecteer de kolommen SSN en Salaris . Kies deterministische versleuteling voor de SSN-kolom en willekeurige versleuteling voor de kolom Salaris . Deterministische versleuteling ondersteunt query's, zoals puntzoekopdrachten waarbij gelijkheidsvergelijkingen op versleutelde kolommen worden uitgevoerd. Gerandomiseerde versleuteling biedt geen ondersteuning voor berekeningen voor versleutelde kolommen.
- Laat CEK-Auto1 (nieuw) staan als de kolomversleutelingssleutel voor beide kolommen. Deze sleutel bestaat nog niet en wordt gegenereerd door de wizard.
- Kies Volgende.
Configureer op de pagina Basissleutelconfiguratie een nieuwe kolomhoofdsleutel die door de wizard wordt gegenereerd. Eerst moet u selecteren waar u de kolomhoofdsleutel wilt opslaan. De wizard ondersteunt twee keystore-typen:
- Azure Key Vault- aanbevolen als uw database zich in Azure bevindt
- Windows-certificaatarchief
Over het algemeen is Azure Key Vault de aanbevolen optie, met name als uw database zich in Azure bevindt.
Azure Key Vault gebruiken:
- Selecteer Azure Key Vault.
- Selecteer Aanmelden en voltooi aanmelden bij Azure.
- Nadat u zich hebt aangemeld, wordt op de pagina de lijst met abonnementen en sleutelkluizen weergegeven, waar u toegang toe hebt. Selecteer een Azure-abonnement met de sleutelkluis dat u wilt gebruiken.
- Selecteer uw sleutelkluis.
- Kies Volgende.
Om gebruik te maken van het Windows-certificaatarchief:
Selecteer het Windows-certificaatarchief.
Laat de standaardselectie van Huidige gebruiker staan - hiermee zal de wizard een certificaat (uw nieuwe kolomhoofdsleutel) genereren in de opslag van de Huidige gebruiker.
Kies Volgende.
Op de pagina In-Place Versleutelingsinstellingen is er geen extra configuratie vereist omdat de database geen enclave heeft ingeschakeld. Kies Volgende.
Op de pagina Instellingen uitvoeren wordt u gevraagd of u wilt doorgaan met versleuteling of een PowerShell-script wilt genereren dat later moet worden uitgevoerd. Laat de standaardinstellingen staan en selecteer Volgende.
Op de pagina Samenvatting informeert de wizard u over de acties die worden uitgevoerd. Controleer of alle informatie juist is en selecteer Voltooien.
Op de pagina Resultaten kunt u de voortgang van de bewerkingen van de wizard controleren. Wacht totdat alle bewerkingen zijn voltooid en selecteer Sluiten.
(Optioneel) Verken de wijzigingen die de wizard heeft aangebracht in uw database.
Vouw ContosoHR>Security>Always Encrypted-sleutels uit om de metagegevensobjecten te verkennen voor de kolomhoofdsleutel en de kolomversleuteling die door de wizard is gemaakt.
U kunt ook de onderstaande query's uitvoeren op de systeemcatalogusweergaven die belangrijke metagegevens bevatten.
SELECT * FROM sys.column_master_keys; SELECT * FROM sys.column_encryption_keys SELECT * FROM sys.column_encryption_key_valuesKlik in Object Explorer met de rechtermuisknop op de tabel Werknemers en selecteer Script Tabel als>MAKEN Naar>Nieuw Query Editor-venster. Hiermee opent u een nieuw queryvenster met de instructie CREATE TABLE voor de tabel Werknemers . Let op de ENCRYPTED WITH clausule die verschijnt in de definities van de SSN en Salaris kolommen.
U kunt de onderstaande query ook uitvoeren op sys.columns om versleutelingsmetagegevens op kolomniveau op te halen voor de twee versleutelde kolommen.
SELECT [name] , [encryption_type] , [encryption_type_desc] , [encryption_algorithm_name] , [column_encryption_key_id] FROM sys.columns WHERE [encryption_type] IS NOT NULL;
Stap 3: Versleutelde kolommen opvragen
Maak verbinding met uw database met Always Encrypted uitgeschakeld voor uw verbinding.
- Open een nieuw queryvenster.
- Klik met de rechtermuisknop op een willekeurige plaats in het queryvenster en selecteer Verbinding>wijzigen. Hiermee opent u het dialoogvenster Verbinding maken met database-engine .
- Selecteer Opties<<. Hiermee worden extra tabbladen weergegeven in het dialoogvenster Verbinding maken met database-engine .
- Selecteer het tabblad Always Encrypted.
- Zorg ervoor dat Always Encrypted inschakelen (kolomversleuteling) niet is geselecteerd.
- Selecteer Maak verbinding met.
Plak de volgende query in en voer deze vervolgens uit. De query moet binaire versleutelde gegevens retourneren.
SELECT [SSN], [Salary] FROM [HR].[Employees]
Maak verbinding met uw database met Always Encrypted ingeschakeld voor uw verbinding.
- Klik met de rechtermuisknop op een willekeurige plaats in het queryvenster en selecteer Verbinding>wijzigen. Hiermee opent u het dialoogvenster Verbinding maken met database-engine .
- Selecteer Opties<<. Hiermee worden extra tabbladen weergegeven in het dialoogvenster Verbinding maken met database-engine .
- Selecteer het tabblad Always Encrypted.
- Selecteer Always Encrypted inschakelen (kolomversleuteling).
- Selecteer Maak verbinding met.
Voer dezelfde query opnieuw uit. Omdat u verbonden bent met Always Encrypted ingeschakeld voor uw databaseverbinding, probeert het clientstuurprogramma in SSMS gegevens te ontsleutelen die zijn opgeslagen in beide versleutelde kolommen. Als u Azure Key Vault gebruikt, wordt u mogelijk gevraagd u aan te melden bij Azure.
Parameterisatie inschakelen voor Always Encrypted. Met deze functie kunt u query's uitvoeren die gegevens filteren op versleutelde kolommen (of gegevens invoegen in versleutelde kolommen).
- Selecteer Query in het hoofdmenu van SSMS.
- Selecteer Queryopties....
- Navigeer naar Uitvoering>Geavanceerd.
- Zorg ervoor dat Parameterisatie voor Always Encrypted is ingeschakeld.
- Kies OK.
Plak de onderstaande query en voer deze uit, waarmee gegevens worden gefilterd op de versleutelde SSN-kolom. De query moet één rij met waarden voor tekst zonder opmaak retourneren.
DECLARE @SSN [char](11) = '795-73-9838' SELECT [SSN], [Salary] FROM [HR].[Employees] WHERE [SSN] = @SSNOptioneel, als u Azure Key Vault gebruikt dat is geconfigureerd met het machtigingsmodel voor toegangsbeleid, volgt u de onderstaande stappen om te zien wat er gebeurt wanneer een gebruiker probeert onversleutelde gegevens op te halen uit versleutelde kolommen, zonder toegang te hebben tot de kolom-masterkey die de gegevens beveiligt.
- Verwijder de sleutelmachtiging
unwrapvoor uzelf in het toegangsbeleid voor uw sleutelkluis. Voor meer informatie raadpleegt u Een Key Vault-toegangsbeleid toewijzen. - Aangezien het clientstuurprogramma in SSMS de kolomversleutelingssleutels, verkregen uit een sleutelkluis, gedurende 2 uur in de cache opslaat, sluit en open SSMS opnieuw. Dit zorgt ervoor dat de sleutelcache leeg is.
- Maak verbinding met uw database met Always Encrypted ingeschakeld voor uw verbinding.
- Plak de volgende query in en voer deze uit. De query mislukt met het foutbericht dat aangeeft dat u de vereiste
unwrapmachtiging mist.
SELECT [SSN], [Salary] FROM [HR].[Employees]- Verwijder de sleutelmachtiging
Volgende stappen
Zie ook
- Always Encrypted-documentatie
- Documentatie voor Always Encrypted met beveiligde enclaves
- Always Encrypted-sleutels inrichten met SQL Server Management Studio
- Always Encrypted configureren met Behulp van PowerShell
- Always Encrypted-wizard
- Kolommen opvragen met Always Encrypted in SQL Server Management Studio