Delen via


Zelfstudie: Aan de slag met Always Encrypted

Van toepassing op:SQL ServerAzure SQL DatabaseAzure 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.

Vereiste voorwaarden

Voor deze zelfstudie hebt u het volgende nodig:

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.

  1. 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) of quickstart: Verbinding maken en query's uitvoeren op een SQL Server-exemplaar met behulp van SQL Server Management Studio (SSMS).>

  2. Open een nieuw queryvenster voor de ContosoHR-database .

  3. 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];
    
  4. 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.

  1. In Objectverkenner vouw Databases>ContosoHR>Tabellen uit.

  2. Klik met de rechtermuisknop op de tabel Werknemers en selecteer Kolommen versleutelen om de wizard Always Encrypted te openen.

    Schermopname van het openen van de wizard Always Encrypted.

  3. Selecteer Volgende op de introductiepagina van de wizard.

  4. Op de pagina Kolomselectie .

    1. 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.
    2. Laat CEK-Auto1 (nieuw) staan als de kolomversleutelingssleutel voor beide kolommen. Deze sleutel bestaat nog niet en wordt gegenereerd door de wizard.
    3. Kies Volgende.

    Schermopname van de kolomselectie van de

  5. 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:

      1. Selecteer Azure Key Vault.
      2. Selecteer Aanmelden en voltooi aanmelden bij Azure.
      3. 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.
      4. Selecteer uw sleutelkluis.
      5. Kies Volgende.

      Schermopname van de hoofdsleutelselectie van de wizard Always Encrypted met behulp van Azure Key Vault.

    • Om gebruik te maken van het Windows-certificaatarchief:

      1. Selecteer het Windows-certificaatarchief.

      2. Laat de standaardselectie van Huidige gebruiker staan - hiermee zal de wizard een certificaat (uw nieuwe kolomhoofdsleutel) genereren in de opslag van de Huidige gebruiker.

        Schermopname van de hoofdsleutelselectie van de wizard Always Encrypted met behulp van het certificaatarchief.

      3. Kies Volgende.

  6. Op de pagina In-Place Versleutelingsinstellingen is er geen extra configuratie vereist omdat de database geen enclave heeft ingeschakeld. Kies Volgende.

  7. 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.

  8. Op de pagina Samenvatting informeert de wizard u over de acties die worden uitgevoerd. Controleer of alle informatie juist is en selecteer Voltooien.

  9. Op de pagina Resultaten kunt u de voortgang van de bewerkingen van de wizard controleren. Wacht totdat alle bewerkingen zijn voltooid en selecteer Sluiten.

    Schermopname van de Always Encrypted wizard samenvattingspagina.

  10. (Optioneel) Verken de wijzigingen die de wizard heeft aangebracht in uw database.

    1. Vouw ContosoHR>Security>Always Encrypted-sleutels uit om de metagegevensobjecten te verkennen voor de kolomhoofdsleutel en de kolomversleuteling die door de wizard is gemaakt.

    2. 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_values
      
    3. Klik 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.

    4. 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

  1. Maak verbinding met uw database met Always Encrypted uitgeschakeld voor uw verbinding.

    1. Open een nieuw queryvenster.
    2. 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 .
    3. Selecteer Opties<<. Hiermee worden extra tabbladen weergegeven in het dialoogvenster Verbinding maken met database-engine .
    4. Selecteer het tabblad Always Encrypted.
    5. Zorg ervoor dat Always Encrypted inschakelen (kolomversleuteling) niet is geselecteerd.
    6. Selecteer Maak verbinding met.

    Schermopname van de SSMS-verbindingsoptie voor Always Encrypted uitgeschakeld.

  2. Plak de volgende query in en voer deze vervolgens uit. De query moet binaire versleutelde gegevens retourneren.

    SELECT [SSN], [Salary] FROM [HR].[Employees]
    

    Schermopname van tekstresultaten van versleutelde kolommen.

  3. Maak verbinding met uw database met Always Encrypted ingeschakeld voor uw verbinding.

    1. 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 .
    2. Selecteer Opties<<. Hiermee worden extra tabbladen weergegeven in het dialoogvenster Verbinding maken met database-engine .
    3. Selecteer het tabblad Always Encrypted.
    4. Selecteer Always Encrypted inschakelen (kolomversleuteling).
    5. Selecteer Maak verbinding met.

    Schermopname van de SSMS-verbindingsoptie voor Always Encrypted ingeschakeld.

  4. 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.

    Schermopname van platte-tekstresultaten van versleutelde kolommen.

  5. 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).

    1. Selecteer Query in het hoofdmenu van SSMS.
    2. Selecteer Queryopties....
    3. Navigeer naar Uitvoering>Geavanceerd.
    4. Zorg ervoor dat Parameterisatie voor Always Encrypted is ingeschakeld.
    5. Kies OK.

    Schermopname van het inschakelen van parameters in een bestaand queryvenster.

  6. 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] = @SSN
    
  7. Optioneel, 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.

    1. Verwijder de sleutelmachtiging unwrap voor uzelf in het toegangsbeleid voor uw sleutelkluis. Voor meer informatie raadpleegt u Een Key Vault-toegangsbeleid toewijzen.
    2. 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.
    3. Maak verbinding met uw database met Always Encrypted ingeschakeld voor uw verbinding.
    4. Plak de volgende query in en voer deze uit. De query mislukt met het foutbericht dat aangeeft dat u de vereiste unwrap machtiging mist.
    SELECT [SSN], [Salary] FROM [HR].[Employees]
    

Volgende stappen

Zie ook