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
Azure SQL Database
Azure SQL Managed Instance
Ez az oktatóanyag bemutatja, hogyan kezdheti el az Always Encrypted szolgáltatást. A következőt jeleníti meg:
- A kijelölt oszlopok titkosítása az adatbázisban.
- Titkosított oszlopok lekérdezése.
Megjegyzés:
Ha biztonságos enklávékkal szeretne információt keresni az Always Encryptedről, tekintse meg ehelyett az alábbi oktatóanyagokat:
Előfeltételek
Ebben az oktatóanyagban a következőkre van szüksége:
- Üres adatbázis az Azure SQL Database-ben, az Azure SQL Managed Instance-ben vagy az SQL Serverben. Az alábbi utasítások feltételezik, hogy az adatbázis neve ContosoHR. Az adatbázis tulajdonosának (a db_owner szerepkör tagjának) kell lennie. Az adatbázis létrehozásával kapcsolatos információkért tekintse meg a gyorsútmutatót: Egyetlen adatbázis létrehozása – Azure SQL Database vagy Adatbázis létrehozása az SQL Serveren.
- Nem kötelező, de ajánlott, különösen akkor, ha az adatbázis az Azure-ban található: egy kulcstartó az Azure Key Vaultban. A kulcstartók létrehozásáról a rövid útmutatóban talál további információt: Kulcstartó létrehozása az Azure Portalhasználatával.
- Ha a kulcstartó a hozzáférési szabályzat engedélymodellt használja, győződjön meg arról, hogy rendelkezik a következő kulcsengedélyekkel a kulcstartóban:
get,list,create,unwrap key,wrap key,verify,sign. Lásd: Key Vault hozzáférési szabályzat hozzárendelése. - Ha az Azure szerepköralapú hozzáférés-vezérlési (RBAC) engedélymodellt használja, győződjön meg arról, hogy a(z) Key Vault kriptotisztségviselő szerepkör tagja. Lásd: Az Azure Key Vault kulcsaihoz, tanúsítványaihoz és titkosaihoz való hozzáférés biztosítása az Azure-beli szerepkör alapú hozzáférés-vezérléssel.
- Ha a kulcstartó a hozzáférési szabályzat engedélymodellt használja, győződjön meg arról, hogy rendelkezik a következő kulcsengedélyekkel a kulcstartóban:
- Az SQL Server Management Studio (SSMS) vagy az SqlServer és az Az PowerShell modulok legújabb verziója. Az Az PowerShell-modul csak az Azure Key Vault használata esetén szükséges.
1. lépés: Az adatbázisséma létrehozása és feltöltése
Ebben a lépésben létrehozza a HR-sémát és az Alkalmazottak táblát . Ezután feltölti a táblát néhány adattal.
Csatlakozzon az adatbázishoz. Az adatbázishoz SSMS-ből való csatlakozással kapcsolatos utasításokért tekintse meg a következő rövid útmutatót: Azure SQL Database vagy felügyelt Azure SQL-példány csatlakoztatása és lekérdezése AZ SQL Server Management Studio (SSMS) használatával vagy rövid útmutató: SQL Server-példány csatlakoztatása és lekérdezése az SQL Server Management Studio (SSMS) használatával.
Nyisson meg egy új lekérdezési ablakot a ContosoHR-adatbázishoz .
Illessze be és hajtsa végre az alábbi utasításokat egy új, Alkalmazottak nevű tábla létrehozásához.
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];Illessze be és hajtsa végre az alábbi utasításokat, hogy hozzáadjon néhány alkalmazotti rekordot az Alkalmazottak táblához.
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 );
2. lépés: Oszlopok titkosítása
Ebben a lépésben létrehoz egy oszlop főkulcsot és egy oszloptitkosítási kulcsot az Always Encryptedhez. Ezután titkosítja az Alkalmazottak tábla SSN és Fizetés oszlopait.
Az SSMS egy varázslót biztosít, amely segít az Always Encrypted egyszerű konfigurálásában egy oszlop főkulcsának, egy oszloptitkosítási kulcsnak és a kijelölt oszlopok titkosításának beállításával.
Az Object Explorerben bontsa ki az Adatbázisokat>, ContosoHR> és a Táblákat.
Kattintson a jobb gombbal az Alkalmazottak táblára, és válassza az Oszlopok titkosítása lehetőséget az Always Encrypted varázsló megnyitásához.
Válassza a Tovább lehetőséget a varázsló Bevezetés lapján.
Az Oszlopkijelölés lapon.
- Válassza ki az SSN és a Fizetés oszlopot. Válassza ki az SSN oszlop determinisztikus titkosítását, a Fizetés oszlop véletlenszerű titkosítását. A determinisztikus titkosítás támogatja a lekérdezéseket, például a titkosított oszlopok egyenlőségi összehasonlítását tartalmazó pontkereséseket. A véletlenszerű titkosítás nem támogatja a titkosított oszlopok számításait.
- Hagyja CEK-Auto1 (Új) oszloptitkosítási kulcsot mindkét oszlophoz. Ez a kulcs még nem létezik, és a varázsló fogja létrehozni.
- Válassza a Következőlehetőséget.
A Főkulcs konfigurációja lapon konfiguráljon egy új oszlop főkulcsát, amelyet a varázsló fog létrehozni. Először ki kell választania, hogy hol szeretné tárolni az oszlop főkulcsát. A varázsló két kulcstároló-típust támogat:
- Azure Key Vault – ajánlott, ha az adatbázis az Azure-ban van
- Windows-tanúsítványtároló
Általában az Azure Key Vault az ajánlott lehetőség, különösen akkor, ha az adatbázis az Azure-ban található.
Az Azure Key Vault használata:
- Válassza az Azure Key Vaultot.
- Válassza a Bejelentkezés lehetőséget, és fejezze be a bejelentkezést az Azure-ba.
- Miután bejelentkezett, a lapon megjelenik az előfizetések és a kulcstartók listája, amelyekhez hozzáférése van. Válassza ki a használni kívánt kulcstartót tartalmazó Azure-előfizetést.
- Válassza ki a kulcstartót.
- Válassza a Következőlehetőséget.
A Windows tanúsítványtároló használata:
Válassza a Windows tanúsítványtárolót.
Hagyja meg az Aktuális felhasználó alapértelmezett beállítását – ez arra utasítja a varázslót, hogy hozzon létre egy tanúsítványt (az új oszlop főkulcsát) az Aktuális felhasználó tárolóban.
Válassza a Következőlehetőséget.
A In-Place Titkosítási beállítások lapon nincs szükség további konfigurációra, mert az adatbázis nem rendelkezik enklávéval. Válassza a Következőlehetőséget.
A Futtatási beállítások lapon a rendszer megkérdezi, hogy folytatja-e a titkosítást, vagy létrehoz egy PowerShell-szkriptet, amelyet később végre szeretne hajtani. Hagyja meg az alapértelmezett beállításokat, és válassza a Tovább gombot.
Az Összegzés lapon a varázsló tájékoztatja a végrehajtandó műveletekről. Ellenőrizze, hogy minden információ helyes-e, és válassza a Befejezés lehetőséget.
Az Eredmények lapon figyelheti a varázsló műveleteinek előrehaladását. Várjon, amíg az összes művelet sikeresen befejeződik, és válassza a Bezárás lehetőséget.
(Nem kötelező) Ismerje meg a varázsló által az adatbázisban végrehajtott módosításokat.
Tárja fel a ContosoHR>Security>Always Encrypted Kulcsokat, hogy megismerje a varázsló által létrehozott oszlop főkulcs és oszloptitkosítás metaadat-objektumait.
Az alábbi lekérdezéseket a kulcs metaadatokat tartalmazó rendszerkatalógus-nézeteken is futtathatja.
SELECT * FROM sys.column_master_keys; SELECT * FROM sys.column_encryption_keys SELECT * FROM sys.column_encryption_key_valuesAz Object Explorerben kattintson a jobb gombbal az Alkalmazottak táblára, és válassza a Szkripttábla>>. Ekkor megnyílik egy új lekérdezési ablak az Alkalmazottak tábla CREATE TABLE utasításával. Figyelje meg az SSN és a Fizetés oszlopok definícióiban megjelenő ENCRYPTED WITH záradékot.
Az alábbi lekérdezést a sys.columns használatával is futtathatja a két titkosított oszlop oszlopszintű titkosítási metaadatainak lekéréséhez.
SELECT [name] , [encryption_type] , [encryption_type_desc] , [encryption_algorithm_name] , [column_encryption_key_id] FROM sys.columns WHERE [encryption_type] IS NOT NULL;
3. lépés: Titkosított oszlopok lekérdezése
Csatlakozzon az adatbázishoz úgy, hogy az Always Encrypted le van tiltva a kapcsolathoz.
- Nyisson meg egy új lekérdezési ablakot.
- Kattintson a jobb gombbal a lekérdezés ablakának tetszőleges pontjára, és válassza a Kapcsolat>módosítása lehetőséget. Ekkor megnyílik a Csatlakozás adatbázismotorhoz párbeszédpanel.
- Válassza a Beállítások<< lehetőséget. Ez további lapokat jelenít meg a Csatlakozás az adatbázismotorhoz párbeszédpanelen.
- Válassza a Always Encrypted lapot.
- Győződjön meg arról, hogy az Always Encrypted engedélyezése (oszloptitkosítás) nincs kiválasztva.
- Válassza a Csatlakozás lehetőséget.
Illessze be és hajtsa végre a következő lekérdezést. A lekérdezésnek binárisan titkosított adatokat kell visszaadnia.
SELECT [SSN], [Salary] FROM [HR].[Employees]
Csatlakozzon az adatbázishoz úgy, hogy az Always Encrypted engedélyezve van a kapcsolathoz.
- Kattintson a jobb gombbal a lekérdezés ablakának tetszőleges pontjára, és válassza a Kapcsolat>módosítása lehetőséget. Ekkor megnyílik a Csatlakozás adatbázismotorhoz párbeszédpanel.
- Válassza a Beállítások<< lehetőséget. Ez további lapokat jelenít meg a Csatlakozás az adatbázismotorhoz párbeszédpanelen.
- Válassza a Always Encrypted lapot.
- Válassza az Always Encrypted engedélyezése (oszloptitkosítás) lehetőséget.
- Válassza a Csatlakozás lehetőséget.
Futtassa le újra ugyanazt a lekérdezést. Mivel az adatbázis-kapcsolathoz engedélyezve van az Always Encrypted, az SSMS ügyfélillesztője megpróbálja visszafejteni a mindkét titkosított oszlopban tárolt adatokat. Ha az Azure Key Vaultot használja, előfordulhat, hogy a rendszer kérni fogja, hogy jelentkezzen be az Azure-ba.
Engedélyezze az Always Encrypted paraméterezését. Ez a funkció lehetővé teszi olyan lekérdezések futtatását, amelyek titkosított oszlopok alapján szűrik az adatokat (vagy adatokat szúrnak be titkosított oszlopokba).
- Válassza a Lekérdezés lehetőséget az SSMS főmenüjében.
- Válassza a Lekérdezési beállítások... lehetőséget.
- Lépjen a Végrehajtás>Haladó elemre.
- Győződjön meg arról, hogy az Always Encrypted paraméterezésének engedélyezése be van jelölve.
- Kattintson az OK gombra.
Illessze be és hajtsa végre az alábbi lekérdezést, amely a titkosított SSN-oszlop alapján szűri az adatokat. A lekérdezésnek egy egyszerű szöveges értékeket tartalmazó sort kell visszaadnia.
DECLARE @SSN [char](11) = '795-73-9838' SELECT [SSN], [Salary] FROM [HR].[Employees] WHERE [SSN] = @SSNHa a hozzáférési szabályzat engedélymodelljével konfigurált Azure Key Vaultot használja, az alábbi lépéseket követve megtudhatja, hogy mi történik, ha egy felhasználó egyszerű szöveges adatokat próbál lekérni a titkosított oszlopokból anélkül, hogy hozzá kellene férnie az adatokat védő oszlop főkulcsához.
- Távolítsa el saját magának a kulcsengedélyt
unwrapa kulcstartó hozzáférési szabályzatában. További információ: Key Vault hozzáférési szabályzat hozzárendelése. - Mivel az SSMS-ügyfélmeghajtó 2 órán keresztül gyorsítótárazza a kulcstárból beszerzett oszloptitkosítási kulcsokat, zárja be az SSMS-t, és nyissa meg újra. Ez biztosítja, hogy a kulcsgyorsítótár üres legyen.
- Csatlakozzon az adatbázishoz úgy, hogy az Always Encrypted engedélyezve van a kapcsolathoz.
- Illessze be és hajtsa végre a következő lekérdezést. A lekérdezésnek a szükséges
unwrapengedély hiányát jelző hibaüzenettel kell meghiúsulnia.
SELECT [SSN], [Salary] FROM [HR].[Employees]- Távolítsa el saját magának a kulcsengedélyt
Következő lépések
- Alkalmazások fejlesztése Always Encrypted használatával
Lásd még
- Always Encrypted dokumentáció
- Always Encrypted biztonságos enklávék dokumentációjával
- Always Encrypted-kulcsok kiépítése az SQL Server Management Studióval
- Always Encrypted konfigurálása a PowerShell használatával
- Always Encrypted varázsló
- Oszlopok lekérdezése az Always Encrypted használatával az SQL Server Management Studio-ban