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.
- ALTER TABLE column_definition (Transact-SQL) 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 (Transact-SQL) és ALTER INDEX (Transact-SQL) utasítások, amelyek véletlenszerű titkosítással hoznak létre vagy módosítanak indexeket enklávé-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
- KÖZÖTT (Transact-SQL)
- IN (Transact-SQL)
- MINT (Transact-SQL)
- 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 kifejezés (Transact-SQL). 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 kifejezés (Transact-SQL). 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
DBCC (Transact-SQL) olyan felügyeleti parancsokat, amelyek az indexek integritásának ellenőrzését foglalják magukban, 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 DBCC CHECKDB (Transact-SQL) és DBCC CHECKTABLE (Transact-SQL).
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.
A T-SQL-utasítások enklávékkal való futtatásának előfeltételei az Azure Data Studióban
A minimálisan javasolt verzió az 1.23-as vagy annál újabb. Győződjön meg arról, hogy az utasításokat olyan lekérdezési ablakban futtatja, amely always encrypted-kompatibilis kapcsolatot használ, valamint a megfelelő igazolási protokollt és az igazolási URL-címet is konfigurálta.
A Kapcsolat párbeszédpanelen válassza a Speciális...lehetőséget.
Ha engedélyezni szeretné az Always Encryptedt a kapcsolathoz, állítsa az Always Encrypted mezőt Engedélyezettértékre.
A biztonságos enklávék engedélyezéséhez állítsa be a Biztonságos enklávék mezőt Engedélyezett.
Adja meg az igazolási protokollt és az igazolási URL-címet.
- Ha SQL Servert használ, állítsa be a Igazolási protokollt a Gazdagépőr szolgáltatásra, és adja meg a Gazdagépőr szolgáltatás igazolási URL-címét az Enklávé igazolási URL-cím mezőben.
- Ha dc-sorozatú adatbázist használ az Intel SGX-sel az Azure SQL Database-ben, állítsa Igazolási protokoll az Azure-igazolási , majd adja meg az igazolási URL-címet, hivatkozva a szabályzatra a Microsoft Azure-igazolásban az Enklávé igazolási URL-cím mezőben.
- Ha az Azure SQL Database-ben engedélyezett VBS-enklávékkal rendelkező adatbázist használ, állítsa az igazolási protokolltNincsértékre.
Válassza az OK gombot a Speciális tulajdonságoklezárásához.
További információ: Always Encrypted engedélyezése és letiltása adatbázis-kapcsolathoz.
Ha paraméteres DML-lekérdezéseket szeretne futtatni, engedélyeznie kell Paraméterezést is az Always Encryptedesetében.
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)
);
GO
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 char(11) = '795-73-9838';
SELECT * FROM [HR].[Employees] WHERE [SSN] = @SSN;
GO
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 char(11) = '795-73-9838';
SELECT * FROM [HR].[Employees] WHERE [SSN] = @SSN;
GO
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 money = 40000;
DECLARE @MaxSalary money = 45000;
SELECT * FROM [HR].[Employees] WHERE [Salary] > @MinSalary AND [Salary] < @MaxSalary;
GO
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] e
JOIN [HR].[Jobs] j
ON e.[JobID] = j.[JobID] AND e.[Salary] > j.[MaxSalary] OR e.[Salary] < j.[MinSalary];
GO
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;
GO
Következő lépések
Lásd még:
- 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