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
Always Encrypted biztonságos enklávékkal lehetővé teszi, hogy Transact-SQL (T-SQL) utasítások bizonyos bizalmas számításokat végezzenek titkosított adatbázisoszlopokon a kiszolgálóoldali biztonságos enklávéban.
Biztonságos enklávékat használó nyilatkozatok
A T-SQL-utasítás következő típusai biztonságos enklávékat használnak.
DDL-utasítások biztonságos enklávékkal
Az alábbi adatdefiníciós nyelv (DDL) utasítások biztonságos enklávékat igényelnek.
- AZ ALTER TABLE column_definition olyan utasítások, amelyek enklávé-kompatibilis kulcsokkal indítják el a helyszíni titkosítási műveleteket. További információ: Az oszloptitkosítás konfigurálása az Always Encrypted használatával biztonságos enklávékkal.
- CREATE INDEX és ALTER INDEX utasítás, amely véletlenszerű titkosítással hoz létre vagy módosít indexeket az enklávéval kompatibilis oszlopokon. További információ: Indexek létrehozása és használata oszlopokon az Always Encrypted biztonságos enklávékkalhasználatával.
DML-utasítások biztonságos enklávékkal
Az alábbi Adatmanipulációs nyelv (DML) utasítások vagy lekérdezések az enklávé-kompatibilis oszlopokon véletlenszerű titkosítás használatával biztonságos enklávékat igényelnek:
- Az alábbi Transact-SQL operátorokat használó, biztonságos enklávékban támogatott lekérdezések:
- összehasonlító operátorok
- BETWEEN
- IN
- LIKE
- DISTINCT
- Illesztések – Az SQL Server 2019 (15.x) csak a nested loop joinokat támogatja. Az SQL Server 2022 (16.x) és az Azure SQL Database támogatja a beágyazott hurkokat, kivonatokat és egyesítési illesztéseket
- SELECT - ORDER BY clase. Az SQL Server 2022 (16.x) és az Azure SQL Database támogatja. Az SQL Server 2019 nem támogatott (15.x)
- SELECT – GROUP BY clase. Az SQL Server 2022 (16.x) és az Azure SQL Database támogatja. Az SQL Server 2019 nem támogatott (15.x)
- Sorokat beszúró, frissítő vagy törlő lekérdezések, amelyek aktiválják az indexkulcs beszúrását és/vagy eltávolítását egy enklávé-kompatibilis oszlop indexéből. További információért lásd: Indexek létrehozása és használata oszlopokon az Always Encrypted technológiával és biztonságos enklávékkal
Jegyzet
Az indexeken és a bizalmas DML-lekérdezéseken az enklávékkal végzett műveletek csak véletlenszerű titkosítást használó enklávé-kompatibilis oszlopokon támogatottak. A determinisztikus titkosítás nem támogatott.
Az adatbázis kompatibilitási szintjét az SQL Server 2022 (160) vagy újabb verzióra kell állítani.
Az Azure SQL Database-ben és az SQL Server 2022-ben (16.x) a karakterlánc-oszlopokon végzett bizalmas lekérdezések, amelyek enklávékat használnak (char, nchar), megkövetelik, hogy az oszlop bináris kódpont (_BIN2) vagy UTF-8 rendezést használjon. Az SQL Server 2019-ben (15.x) a_BIN2 rendezés szükséges.
DBCC-parancsok biztonságos enklávékkal
Az indexek integritásának ellenőrzésére vonatkozó DBCC felügyeleti parancsok biztonságos enklávékat is igényelhetnek, ha az adatbázis véletlenszerű titkosítással tartalmaz indexeket az enklávé-kompatibilis oszlopokon. Például a DBCC CHECKDB és a DBCC CHECKTABLE.
A nyilatkozatok biztonságos enklávékkal történő futtatásának előfeltételei
A környezetnek meg kell felelnie az alábbi követelményeknek a biztonságos enklávét használó utasítások végrehajtásának támogatásához.
Az SQL Server-példányt vagy az Azure SQL Database-ben található adatbázis-kiszolgálót megfelelően kell konfigurálni az enklávék és az igazolások támogatására, ha vannak/szükségesek. További információ: A biztonságos környezet és igazolás beállítása.
Ha egy alkalmazásból vagy eszközből (például SQL Server Management Studióból) csatlakozik az adatbázishoz, győződjön meg arról, hogy:
Használjon olyan ügyfélillesztő-verziót vagy eszközverziót, amely biztonságos enklávékkal támogatja az Always Encryptedt.
- Lásd a(z) Az Always Encrypted biztonságos enklávékkal használó alkalmazások fejlesztése című részt a(z) ügyfélillesztőkről, amelyek támogatják az Always Encrypted funkciót biztonságos enklávékkal.
- Az Always Encryptedt biztonságos enklávékkal támogató eszközökkel kapcsolatos információkért tekintse meg a következő szakaszokat.
Engedélyezze az Always Encryptedt az adatbázis-kapcsolathoz.
Adjon meg egy igazolási protokollt, amely meghatározza, hogy az alkalmazásnak vagy az eszköznek igazolnia kell-e az enklávét az enklávé lekérdezések elküldése előtt, és hogy melyik igazolási szolgáltatást kell használnia. A legtöbb eszköz és illesztőprogram az alábbi igazolási protokollokat támogatja:
- Microsoft Azure-igazolás – az igazolást a Microsoft Azure-igazolással kényszeríti ki.
- Host Guardian Service – a biztonságos igazolást a Host Guardian Service használatával biztosítja.
- Nincs – lehetővé teszi az enklávék igazolás nélküli használatát.
Az alábbi táblázat az egyes SQL-termékekre és enklávétechnológiákra érvényes igazolási protokollokat határozza meg:
Termék Enklávé technológia Támogatott igazolási protokollok SQL Server 2019 (15.x) és újabb verziók VBS-enklávék Host Guardian Szolgáltatás, Nincs Azure SQL Database SGX-enklávék (DC-sorozatú adatbázisokban) Microsoft Azure-igazolás Azure SQL Database VBS-enklávék Egyik sem
Adjon meg egy olyan igazolási URL-címet, amely érvényes a környezetére, ha igazolást alkalmaz.
- Ha SQL Server-t és a Host Guardian Service-t (HGS) használ, lásd a HGS igazolási URL-címének meghatározása és megosztásacímet.
- Ha az Azure SQL Database-t Intel SGX enklávékkal és Microsoft Azure-igazolással használja, tekintse meg a Igazolási szabályzat igazolási URL-címének meghatározásarészt.
T-SQL-utasítások SSMS-enklávékkal történő futtatásának előfeltételei
Telepítse az SQL Server Management Studio (SSMS) legújabb verzióját.
Győződjön meg arról, hogy az utasításokat olyan lekérdezési ablakból futtatja, amely az Always Encrypted és az igazolási paraméterekkel megfelelően konfigurált kapcsolatot használ.
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 Beállítások >>, majd a Kapcsolat tulajdonságai lapot. Adja meg az adatbázis nevét.
Válassza a Always Encrypted lapot.
Válassza a Az Always Encrypted (oszloptitkosítás) engedélyezéselehetőséget.
Válassza a Biztonságos enklávék engedélyezéselehetőséget.
Állítsa protokoll a következőre:
- Host Guardian Service, ha SQL Servert használ.
- Microsoft Azure Bizonyítványkezelés, ha az Azure SQL-adatbázist Intel SGX-enklávékkal használja.
- Nincs ha az Azure SQL Database-t VBS-enklávékkal használja.
Adja meg az enklávé igazolási URL-címét. Nem alkalmazható, ha a protokoll értéke Nincs. Például
https://hgs.bastion.local/Attestationvagyhttps://contososqlattestation.uks.attest.azure.net/attest/SgxEnclave.
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 Engedélyezéslehetőséget.
További információ: Always Encrypted engedélyezése és letiltása adatbázis-kapcsolathoz.
Példák
Ez a szakasz példákat tartalmaz az enklávékat használó DML-lekérdezésekre.
A példák az alábbi sémát használják.
CREATE SCHEMA [HR];
GO
CREATE TABLE [HR].[Jobs](
[JobID] [int] IDENTITY(1,1) PRIMARY KEY,
[JobTitle] [nvarchar](50) NOT NULL,
[MinSalary] [money] ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [CEK1], ENCRYPTION_TYPE = Randomized, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NOT NULL,
[MaxSalary] [money] ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [CEK1], ENCRYPTION_TYPE = Randomized, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NOT NULL
);
GO
CREATE TABLE [HR].[Employees](
[EmployeeID] [int] IDENTITY(1,1) PRIMARY KEY,
[SSN] [char](11) ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [CEK1], ENCRYPTION_TYPE = Randomized, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NOT NULL,
[FirstName] [nvarchar](50) NOT NULL,
[LastName] [nvarchar](50) NOT NULL,
[Salary] [money] ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [CEK1], ENCRYPTION_TYPE = Randomized, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NOT NULL,
[JobID] [int] NULL,
FOREIGN KEY (JobID) REFERENCES [HR].[Jobs] (JobID)
);
Pontos egyezéses keresés
Az alábbi lekérdezés pontos egyezés keresést végzi a titkosított SSN karakterlánc oszlopon.
DECLARE @SSN AS CHAR (11) = '795-73-9838';
SELECT *
FROM [HR].[Employees]
WHERE [SSN] = @SSN;
Mintaegyező keresés
Az alábbi lekérdezés a titkosított SSN sztringoszlopon mintázatalapú keresést végez, és azokat az alkalmazottakat keresi, akiknek társadalombiztosítási számának megadott utolsó négy számjegye egyezik.
DECLARE @SSN AS CHAR (11) = '795-73-9838';
SELECT *
FROM [HR].[Employees]
WHERE [SSN] = @SSN;
Tartomány összehasonlítása
Az alábbi lekérdezés tartomány-összehasonlítást végez a titkosított Salary oszlopban, és megkeresi a megadott tartományon belüli fizetéssel rendelkező alkalmazottakat.
DECLARE @MinSalary AS MONEY = 40000;
DECLARE @MaxSalary AS MONEY = 45000;
SELECT *
FROM [HR].[Employees]
WHERE [Salary] > @MinSalary
AND [Salary] < @MaxSalary;
Csatlakozik
Az alábbi lekérdezés összekapcsolja Employees és Jobs táblákat a titkosított Salary oszlop használatával. A lekérdezés azokat az alkalmazottakat listázza, akiknek a fizetése a munkakörükhöz tartozó fizetéstartományon kívül esik.
SELECT *
FROM [HR].[Employees] AS e
INNER JOIN [HR].[Jobs] AS j
ON e.[JobID] = j.[JobID]
AND e.[Salary] > j.[MaxSalary]
OR e.[Salary] < j.[MinSalary];
Rendezés
Az alábbi lekérdezés a titkosított Salary oszlop alapján rendezi az alkalmazotti rekordokat, és 10 alkalmazottat kérdez le a legmagasabb fizetéssel.
Jegyzet
A titkosított oszlopok rendezése az SQL Server 2022 -ben (16.x) és az Azure SQL Database-ben támogatott, az SQL Server 2019-ben (15.x) azonban nem.
SELECT TOP (10) *
FROM [HR].[Employees]
ORDER BY [Salary] DESC;
Következő lépés
Kapcsolódó tartalom
- Az Always Encrypted és a biztonságos enklávék gyakori problémáinak elhárítása
- Az Always Encrypted használatának első lépései biztonságos enklávékkal
- Az oszloptitkosítás helyben történő konfigurálása az Always Encrypted használatával, biztonságos enklávékkal
- Indexek létrehozása és használata oszlopokon az Always Encrypted biztonságos enklávékkal való használatával