gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreertDeze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
Van toepassing op: SQL Server 2019 (15.x) en hoger - Alleen Windows
Azure SQL Database
In deze handleiding leert u hoe u indexen kunt maken en gebruiken op kolommen die geschikt zijn voor enclaves, met behulp van gerandomiseerde versleuteling die wordt ondersteund in Always Encrypted met beveiligde enclaves. U ziet het volgende:
Download de nieuwste versie van SSMS (SQL Server Management Studio).
Zorg ervoor dat u een van de zelfstudies Aan de slag met Always Encrypted met beveiligde enclaves hebt voltooid voordat u de onderstaande stappen in deze zelfstudie volgt.
Notitie
Deze stap is alleen van toepassing op SQL Server. Als u Azure SQL Database of Azure SQL Managed Instance gebruikt, kunt u deze stap overslaan. ADR is altijd ingeschakeld in Azure SQL Database en Azure SQL Managed Instance.
Microsoft raadt u ten zeerste aan ADR in te schakelen in uw database voordat u de eerste index maakt op een enclavekolom met behulp van gerandomiseerde versleuteling. Zie de sectie Database Recovery in Always Encrypted met beveiligde enclaves.
Sluit alle SSMS-exemplaren die u in de vorige handleiding hebt gebruikt. Als u SSMS sluit, worden databaseverbindingen gesloten die u hebt geopend. Dit is vereist om ADR in te schakelen.
Open een nieuw exemplaar van SSMS en maak verbinding met uw SQL Server-exemplaar als sysadmin zonder Always Encrypted ingeschakeld voor de databaseverbinding.
Open een nieuw queryvenster en voer de onderstaande instructie uit om ADR in te schakelen.
ALTER DATABASE ContosoHR SET ACCELERATED_DATABASE_RECOVERY = ON;
In deze stap maakt en test u een index op een versleutelde kolom. U fungeert als een enkele gebruiker die de rollen vervult van zowel een DBA, die de database beheert, als van de eigenaar van de gegevens die verantwoordelijk is voor de sleutels en zodoende de gegevens beschermt.
Open een nieuw SSMS-exemplaar en maak verbinding met uw SQL Server-exemplaar met Always Encrypted ingeschakeld voor de databaseverbinding.
Als u niet wordt gevraagd parameterisatie in te schakelen voor Always Encrypted, controleert u of deze is ingeschakeld.
Open een queryvenster en voer de onderstaande instructies uit om de kolom LastName in de tabel Employees te versleutelen. In latere stappen maakt en gebruikt u een index voor die kolom.
ALTER TABLE [HR].[Employees]
ALTER COLUMN [LastName] [nvarchar](50) COLLATE Latin1_General_BIN2
ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [CEK1], ENCRYPTION_TYPE = Randomized, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NOT NULL;
GO
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
GO
Maak een index in de kolom LastName. Omdat u bent verbonden met de database met Always Encrypted ingeschakeld, verstrekt het clientstuurprogramma in SSMS transparant CEK1- (de kolomversleutelingssleutel, die de LastName kolom beveiligt) aan de enclave, die nodig is om de index te maken.
CREATE INDEX IX_LastName ON [HR].[Employees] ([LastName])
INCLUDE ([EmployeeID], [FirstName], [SSN], [Salary]);
GO
Voer een uitgebreide query uit op de kolom LastName en controleer of SQL Server de index gebruikt bij het uitvoeren van de query.
Zorg ervoor dat in hetzelfde of een nieuw queryvenster de knop Livequerystatistieken opnemen op de werkbalk is ingeschakeld.
Voer de onderstaande query uit.
DECLARE @LastNamePrefix NVARCHAR(50) = 'Aber%';
SELECT * FROM [HR].[Employees] WHERE [LastName] LIKE @LastNamePrefix;
GO
Bekijk op het tabblad Live Query Statistics dat de query gebruikmaakt van de index.
In deze stap maakt u een index voor een versleutelde kolom en doet u zich voor als twee verschillende gebruikers. Eén gebruiker is een DBA, die een index moet maken, maar geen toegang heeft tot de sleutels. De andere gebruiker is een gegevenseigenaar die toegang heeft tot de sleutels.
Voer met behulp van de SSMS-instantie zonder Always Encrypted ingeschakeld de onderstaande instructie uit om de index in de kolom Achternaam te verwijderen.
DROP INDEX IX_LastName ON [HR].[Employees];
GO
Als gegevenseigenaar (of een toepassing die toegang heeft tot de sleutels), vult u de cache in de enclave met CEK1.
Notitie
Tenzij u uw SQL Server-exemplaar opnieuw hebt opgestart na stap 2: een index maken en testen zonder functiescheiding, is deze stap overbodig omdat de CEK1- al aanwezig is in de cache. We hebben het toegevoegd om te laten zien hoe een gegevenseigenaar een sleutel kan leveren aan de enclave, als deze nog niet aanwezig is in de enclave.
Voer in het SSMS-exemplaar met Always Encrypted ingeschakeld de onderstaande instructies uit in een queryvenster. Met de declaratie worden alle enclave-compatibele kolomversleutelingssleutels naar de enclave verzonden. Zie sp_enclave_send_keys voor meer informatie.
EXEC sp_enclave_send_keys;
GO
Als alternatief voor het uitvoeren van de bovenstaande opgeslagen procedure kunt u een DML-query uitvoeren die gebruikmaakt van de enclave voor de kolom Achternaam. Hiermee wordt de enclave alleen gevuld met CEK1.
DECLARE @LastNamePrefix NVARCHAR(50) = 'Aber%';
SELECT * FROM [HR].[Employees] WHERE [LastName] LIKE @LastNamePrefix;
GO
Maak, als DBA, de index aan.
Voer in het SSMS-exemplaar zonder Always Encrypted ingeschakeld de onderstaande instructies uit in een queryvenster.
CREATE INDEX IX_LastName ON [HR].[Employees] ([LastName])
INCLUDE ([EmployeeID], [FirstName], [SSN], [Salary]);
GO
Als gegevenseigenaar voert u een uitgebreide query uit op de kolom LastName en controleert u of SQL Server de index gebruikt bij het uitvoeren van de query.
Selecteer in het SSMS-exemplaar met Always Encrypted ingeschakeld een bestaand queryvenster of open een nieuw queryvenster en controleer of de knop Livequerystatistieken opnemen op de werkbalk is ingeschakeld.
Voer de onderstaande query uit.
DECLARE @LastNamePrefix NVARCHAR(50) = 'Aber%';
SELECT * FROM [HR].[Employees] WHERE [LastName] LIKE @LastNamePrefix;
GO
In de Live Query Statisticsziet u dat de query gebruikmaakt van de index.
gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreertTraining
Module
Gegevens in transit en at-rest beveiligen - Training
Gegevens in transit en at-rest beveiligen
Certificering
Microsoft Certified: Azure Database Administrator Associate - Certifications
Beheer een SQL Server-databaseinfrastructuur voor cloud-, on-premises en hybride relationele databases met behulp van de relationele Microsoft PaaS-databaseaanbiedingen.
Documentatie
Enclave-ingeschakelde sleutels inrichten - SQL Server
Ingeschakelde enclave-sleutels beheren
Altijd Versleuteld - SQL Server
Overzicht van Always Encrypted dat transparante versleuteling en vertrouwelijke computing aan clientzijde ondersteunt in SQL Server en Azure SQL Database