Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server 2019 (15.x) és újabb verziók Windows
Azure SQL Database-en
Ez az oktatóanyag bemutatja, hogyan hozhat létre és használhat indexeket enklávéval kompatibilis oszlopokon az Always Encrypted biztonságos enklávékkaltámogatott véletlenszerű titkosítással. A következőt jeleníti meg:
- Index létrehozása, ha hozzáfér az oszlopot védő kulcsokhoz (az oszlop főkulcsához és az oszloptitkosítási kulcshoz).
- Index létrehozása, ha nincs hozzáférése az oszlopot védő kulcsokhoz.
Előfeltételek
Telepítse az SQL Server Management Studio (SSMS) legújabb verzióját.
Mielőtt követné az alábbi lépéseket ebben az oktatóanyagban, győződjön meg arról, hogy elvégezte az Always Encrypted biztonságos enklávékkal való használatának valamelyik vagy oktatóanyagát.
1. lépés: Gyorsított adatbázis-helyreállítás (ADR) engedélyezése az adatbázisban
Jegyzet
Ez a lépés csak az SQL Serverre vonatkozik. Ha Azure SQL Database-t vagy felügyelt Azure SQL-példányt használ, hagyja ki ezt a lépést. Az ADR mindig engedélyezve van az Azure SQL Database-ben és az Azure SQL Managed Instance-ben.
A Microsoft határozottan javasolja, hogy engedélyezze az ADR-t az adatbázisban, mielőtt az első indexet egy enklávé-kompatibilis oszlopon hozza létre véletlenszerű titkosítással. Lásd a Database Recovery szakaszt az Always Encrypted biztonságos enklávékkal.
Zárja be az előző oktatóanyagban használt SSMS-példányokat. Az SSMS bezárása bezárja a megnyitott adatbázis-kapcsolatokat, ami az ADR engedélyezéséhez szükséges.
Nyisson meg egy új SSMS-példányt, és csatlakozzon az SQL Server-példányhoz sysadmin -ként, az adatbázis-kapcsolathoz pedig Always Encrypted engedélyezése nélkül.
- Indítsa el az SSMS-eket.
- A Csatlakozás a kiszolgálóhoz párbeszédpanelen adja meg a kiszolgáló nevét, válasszon ki egy hitelesítési módszert, és adja meg a hitelesítő adatait.
- Válassza a Beállítások >> lehetőséget, és válassza a Always Encrypted lapot.
- Győződjön meg arról, hogy az Always Encrypted (oszloptitkosítás) engedélyezése jelölőnégyzetet ne jelölje be.
- Válassza Csatlakozáslehetőséget.
Nyisson meg egy új lekérdezési ablakot, és hajtsa végre az alábbi utasítást az ADR engedélyezéséhez.
ALTER DATABASE ContosoHR SET ACCELERATED_DATABASE_RECOVERY = ON;
2. lépés: Index létrehozása és tesztelése szerepkör-elkülönítés nélkül
Ebben a lépésben egy indexet fog létrehozni és tesztelni egy titkosított oszlopon. Ön egyetlen felhasználóként fog eljárni, aki az adatbázist kezelő DBA és a kulcsokhoz hozzáféréssel rendelkező adattulajdonos szerepkörét is átveszi, és védi az adatokat.
Nyisson meg egy új SSMS-példányt, és csatlakozzon az SQL Server példányához , ahol az Always Encrypted engedélyezve van a kapcsolat során.
- Indítsa el az SSMS új példányát.
- A Csatlakozás a kiszolgálóhoz párbeszédpanelen adja meg a kiszolgáló nevét, válasszon ki egy hitelesítési módszert, és adja meg a hitelesítő adatait.
- Válassza a Beállítások >> lehetőséget, és válassza a Always Encrypted lapot.
- Jelölje be azokat a jelölőnégyzeteket, az Always Encrypted (oszloptitkosítás) engedélyezése és a biztonságos enklávék engedélyezése.
- Ha az adatbázishoz igazolást használ, válasszon egy Enclave Attestation Protocol értéket, amely az igazolási szolgáltatást (Host Guardian Service vagy Microsoft Azure-igazolás) jelöli, és töltse ki az enklávé igazolási URL-címét. Ellenkező esetben válassza a Nincs lehetőséget.
- Válassza Csatlakozáslehetőséget.
- Ha a rendszer kéri az Always Encrypted-lekérdezések paraméterezésének engedélyezését, válassza a Enablelehetőséget.
Ha a rendszer nem kéri az Always Encrypted paraméterezésének engedélyezését, ellenőrizze, hogy engedélyezve van-e.
- Válassza a Eszközök lehetőséget az SSMS főmenüjéből.
- Válassza Beállítások...lehetőséget.
- Navigáljon a lekérdezés-végrehajtás>SQL Server>Speciálispontra.
- Győződjön meg arról, hogy Az Always Encrypted paraméterezésének engedélyezése jelölőnégyzet be van jelölve.
- Válassza OKlehetőséget.
Nyisson meg egy lekérdezési ablakot, és hajtsa végre az alábbi utasításokat a LastName oszlop titkosításához az Alkalmazottak táblában. A későbbi lépésekben létre fog hozni és használni fog egy indexet ezen az oszlopon.
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; GOHozzon létre egy indexet a LastName oszlopban. Mivel az Always Encrypted engedélyezve van az adatbázishoz csatlakoztatva, az SSMS-ben lévő ügyfélillesztő transzparens módon biztosítja CEK1 (az oszloptitkosítási kulcs, amely védi a LastName oszlopot) az enklávéhoz, amely az index létrehozásához szükséges.
CREATE INDEX IX_LastName ON [HR].[Employees] ([LastName]) INCLUDE ([EmployeeID], [FirstName], [SSN], [Salary]); GOFuttasson egy részletes lekérdezést a LastName oszlopban, és ellenőrizze, hogy az SQL Server használja-e az indexet a lekérdezés végrehajtásakor.
Ugyanabban vagy egy új lekérdezési ablakban győződjön meg arról, hogy be van kapcsolva az eszköztár Élő lekérdezési statisztikák belefoglalása gomb.
Hajtsa végre az alábbi lekérdezést.
DECLARE @LastNamePrefix NVARCHAR(50) = 'Aber%'; SELECT * FROM [HR].[Employees] WHERE [LastName] LIKE @LastNamePrefix; GOAz Élő lekérdezési statisztikák lapon figyelje meg, hogy a lekérdezés az indexet használja.
3. lépés: Index létrehozása szerepkör-elkülönítéssel
Ebben a lépésben egy indexet fog létrehozni egy titkosított oszlopon, úgy, mintha két különböző felhasználó lenne. Az egyik felhasználó egy DBA, akinek indexet kell létrehoznia, de nem fér hozzá a kulcsokhoz. A másik felhasználó egy adattulajdonos, aki hozzáfér a kulcsokhoz.
Az SSMS-példány Always Encrypted engedélyezése nélkül hajtsa végre az alábbi utasítást, hogy az indexet a LastName oszlopba helyezze.
DROP INDEX IX_LastName ON [HR].[Employees]; GOAdattulajdonosként (vagy a kulcsokhoz hozzáféréssel rendelkező alkalmazásként) töltse fel az adatcache-t az enklávén belül CEK1.
Jegyzet
Hacsak nem újraindította az SQL Server-példányt 2. lépés: Index létrehozása és tesztelése szerepkör-elkülönítés nélkül, ez a lépés redundáns, mivel a CEK1 már megtalálható a gyorsítótárban. Hozzáadtuk, hogy bemutassuk, az adattulajdonos hogyan adhat kulcsokat az enklávéhoz, ha még nincs jelen az enklávéban.
Az SSMS-példányban Always Encrypted engedélyezve van, hajtsa végre az alábbi utasításokat egy lekérdezési ablakban. Az utasítás elküldi az összes enklávé-kompatibilis oszloptitkosítási kulcsot az enklávénak. Részletekért lásd a sp_enclave_send_keys.
EXEC sp_enclave_send_keys; GOA fenti tárolt eljárás végrehajtásának alternatívaként futtathat egy DML-lekérdezést, amely az enklávét használja a LastName oszlopon. Ez csak CEK1fogja feltölteni az enklávét.
DECLARE @LastNamePrefix NVARCHAR(50) = 'Aber%'; SELECT * FROM [HR].[Employees] WHERE [LastName] LIKE @LastNamePrefix; GO
DBA-ként eljárva hozza létre az indexet.
Az SSMS-példányban Always Encrypted engedélyezése nélkül hajtsa végre az alábbi utasításokat egy lekérdezési ablakban.
CREATE INDEX IX_LastName ON [HR].[Employees] ([LastName]) INCLUDE ([EmployeeID], [FirstName], [SSN], [Salary]); GO
Adattulajdonosként futtasson egy részletes lekérdezést a LastName oszlopban, és ellenőrizze, hogy az SQL Server használja-e az indexet a lekérdezés végrehajtásakor.
Az SSMS-példányban Always Encrypted engedélyezve van, jelöljön ki egy meglévő lekérdezési ablakot, vagy nyisson meg egy új lekérdezési ablakot, és győződjön meg arról, hogy be van kapcsolva az eszköztár Élő lekérdezési statisztikák belefoglalása gombja.
Hajtsa végre az alábbi lekérdezést.
DECLARE @LastNamePrefix NVARCHAR(50) = 'Aber%'; SELECT * FROM [HR].[Employees] WHERE [LastName] LIKE @LastNamePrefix; GOAz élő lekérdezési statisztikákfigyelje meg, hogy a lekérdezés az indexet használja.
Következő lépések
- oktatóanyag: .NET-alkalmazás fejlesztése az Always Encrypted használatával biztonságos enklávékkal
- oktatóanyag: .NET-keretrendszeralkalmazás fejlesztése az Always Encrypted használatával biztonságos enklávékkal