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 a cikk bemutatja, hogyan hajthatók végre kriptográfiai műveletek közvetlenül az oszlopokon az Always Encrypted biztonságos enklávékkal funkcióval és az ALTER TABLE utasítás/ALTER COLUMN használatával. A helyszíni titkosítással és az általános előfeltételekkel kapcsolatos alapvető információkért lásd: Az oszloptitkosítás helyben történő konfigurálása az Always Encrypted használatával biztonságos enklávékkal.
A ALTER TABLE vagy ALTER COLUMN utasítással beállíthatja egy oszlop céltitkosítási konfigurációját. Az utasítás végrehajtásakor a kiszolgálóoldali biztonságos enklávé titkosítja, újra titkosítja vagy visszafejti az oszlopban tárolt adatokat az utasítás oszlopdefiníciójában megadott aktuális és céltitkosítási konfigurációtól függően.
- Ha az oszlop jelenleg nincs titkosítva, akkor titkosítva lesz, ha megadja a
ENCRYPTED WITHzáradékot az oszlopdefinícióban. - Ha az oszlop jelenleg titkosítva van, az vissza lesz fejtve (egyszerű szöveges oszlopmá konvertálva), ha nem adja meg a
ENCRYPTED WITHzáradékot az oszlopdefinícióban. - Ha az oszlop jelenleg titkosítva van, a rendszer újra titkosítja, ha megadja a
ENCRYPTED WITHzáradékot, és a megadott oszloptitkosítási típus vagy az oszloptitkosítási kulcs eltér a jelenleg használt titkosítási típustól vagy az oszloptitkosítási kulcstól.
Jegyzet
Egyetlen utasításban nem kombinálhatja a titkosítási műveleteket más módosításokkal ALTER TABLE/ALTER COLUMN , kivéve az oszlop NULLNOT NULLvagy a rendezés módosítását. Nem titkosíthat például egy oszlopot, és nem módosíthatja az oszlop adattípusát egyetlen ALTER TABLE/ALTER COLUMN Transact-SQL utasításban. Két külön utasítást használjon.
Mint minden olyan lekérdezésnél, amely kiszolgálóoldali biztonságos enklávét használ, olyan utasítást ALTER TABLE/ALTER COLUMN kell küldenie, amely helyi titkosítást aktivál az Always Encrypted és az enklávé számításokkal engedélyezett kapcsolaton keresztül.
A cikk további része azt ismerteti, hogyan aktiválható a helyszíni titkosítás az SQL Server Management Studio ALTER TABLE/ALTER COLUMN utasításával. Alternatív megoldásként kiadhatja a ALTER TABLE/ALTER COLUMN parancsot a Visual Studio Code-ból vagy az alkalmazásából.
Jegyzet
Az SqlServer PowerShell modulban és az sqlcmdben található Invoke-Sqlcmd parancsmag jelenleg nem támogatja a helyszíni titkosítási műveletek használatátALTER TABLE/ALTER COLUMN.
Helyszíni titkosítás végrehajtása Transact-SQL az SSMS-ben
Előfeltételek
- Az oszloptitkosítás helyben történő konfigurálása az Always Encrypted biztonságos enklávékkal való használatával című cikkben ismertetett előfeltételek.
- Telepítse az SQL Server Management Studio (SSMS) legújabb verzióját.
Lépések
Nyisson meg egy lekérdezési ablakot az Always Encrypted és az enklávé számítások engedélyezésével az adatbázis-kapcsolatban. További információ: Always Encrypted engedélyezése és letiltása adatbázis-kapcsolathoz.
A lekérdezési ablakban futtassa az utasítást
ALTER TABLE/ALTER COLUMN. Adja meg a titkosítani, visszafejtenni vagy újratitkosítani kívánt oszlop céltitkosítási konfigurációját. Ha az oszlopot titkosítja vagy újra titkosítja, használja aENCRYPTED WITHzáradékot. Ha az oszlop egy sztringoszlop (példáulchar,varchar,nchar,nvarchar), előfordulhat, hogy a rendezést BIN2 rendezésre is módosítania kell.Jegyzet
Ha az oszlop főkulcsa az Azure Key Vaultban van tárolva, előfordulhat, hogy a rendszer kérni fogja, hogy jelentkezzen be az Azure-ba.
A paraméterek titkosítási információinak frissítése érdekében törölje a terv gyorsítótárát minden táblához hozzáférő köteg és tárolt eljárás esetében.
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;Jegyzet
Ha nem távolítja el az érintett lekérdezés tervét a gyorsítótárból, a lekérdezés titkosítás utáni első végrehajtása sikertelen lehet.
A tervgyorsítótár törléséhez körültekintően használja a
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHEvagyDBCC FREEPROCCACHEjelöléseket, mivel ez ideiglenes lekérdezési teljesítménycsökkenést eredményezhet. A gyorsítótár kiürítésének negatív hatásának minimalizálása érdekében csak az érintett lekérdezések terveit távolíthatja el szelektíven.Hívja meg sp_refresh_parameter_encryption , hogy frissítse az egyes modulok (tárolt eljárás, függvény, nézet, eseményindító) paramétereinek metaadatait, amelyek a sys.parametersben vannak tárolva, és az oszlopok titkosításával érvénytelenné válhatnak.
Példák
Az oszlop titkosítása helyben
A következő példa a következőket feltételezi:
-
CEK1egy enklávé-kompatibilis oszloptitkosítási kulcs. - A
SSNoszlop egyszerű szöveg, és jelenleg az alapértelmezett adatbázis-rendezést használja, például Latin1, nem BIN2 rendezést (példáulLatin1_General_CI_AI_KS_WS).
Az utasítás determinisztikus titkosítással és az enklávéval kompatibilis oszloptitkosítási kulccsal titkosítja a SSN oszlopot. Felülírja az alapértelmezett adatbázis-rendezést is a megfelelő (ugyanazon kódoldalon) BIN2 rendezéssel.
A műveletet online (ONLINE = ON) hajtja végre. Jegyezze fel a(z) ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE hívást, amely újraalkotja a táblaséma módosítása által érintett lekérdezések terveit.
ALTER TABLE [dbo].[Employees]
ALTER COLUMN [SSN] CHAR (11) COLLATE Latin1_General_BIN2
ENCRYPTED WITH (
COLUMN_ENCRYPTION_KEY = [CEK1],
ENCRYPTION_TYPE = DETERMINISTIC,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'
) NOT NULL WITH (ONLINE = ON);
GO
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
Az oszlop titkosításának típusát helyben újratitkosítva módosítani
A következő példa a következőket feltételezi:
- A
SSNoszlop determinisztikus titkosítással és enklávé-kompatibilis oszloptitkosítási kulccsal van titkosítva,CEK1. - Az oszlopszinten beállított jelenlegi rendezés a következő:
Latin1_General_BIN2.
Az alábbi utasítás véletlenszerű titkosítással és ugyanazzal a kulccsal (CEK1) újra titkosítja az oszlopot.
ALTER TABLE [dbo].[Employees]
ALTER COLUMN [SSN] CHAR (11) 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;
Oszlop helybeni újratitkosítása az oszloptitkosítási kulcs forgatásához
A következő példa a következőket feltételezi:
- A
SSNoszlop véletlenszerű titkosítással és enklávé-kompatibilis oszloptitkosítási kulccsal van titkosítva,CEK1. -
CEK2egy enklávé-kompatibilis oszloptitkosítási kulcs, amely eltér aCEK1-től. - Az oszlopszinten beállított jelenlegi rendezés a következő:
Latin1_General_BIN2.
Az alábbi utasítás újra titkosítja az oszlopot a következővel CEK2:
ALTER TABLE [dbo].[Employees]
ALTER COLUMN [SSN] CHAR (11) COLLATE Latin1_General_BIN2
ENCRYPTED WITH (
COLUMN_ENCRYPTION_KEY = [CEK2],
ENCRYPTION_TYPE = RANDOMIZED,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'
) NOT NULL;
GO
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
Oszlop visszafejtése közvetlenül
A következő példa a következőket feltételezi:
- A
SSNoszlop titkosítása enklávé-kompatibilis oszloptitkosítási kulccsal történik. - Az oszlopszinten beállított jelenlegi rendezés a következő:
Latin1_General_BIN2.
Az alábbi utasítás visszafejti az oszlopot, és változatlanul tartja a kollációt. Másik lehetőségként módosíthatja a rendezést. Módosítsa például a rendezést nem BIN2 rendezésre ugyanabban az utasításban.
ALTER TABLE [dbo].[Employees]
ALTER COLUMN [SSN] CHAR (11) COLLATE Latin1_General_BIN2
WITH (ONLINE = ON);
GO
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
Kapcsolódó tartalom
- Az Always Encrypted és a biztonságos enklávék gyakori problémáinak elhárítása
- Az oszloptitkosítás helybeni konfigurálása az Always Encrypted használatával biztonságos enklávékkal
- "Always Encrypted" engedélyezése biztonságos enklávékkal a meglévő titkosított oszlopokhoz
- Az Always Encrypted használatának első lépései biztonságos enklávékkal
- Transact-SQL utasítások futtatása biztonságos enklávék használatával
- Indexek létrehozása és használata oszlopokon az Always Encrypted funkcióval, biztonságos enklávékkal
- Alkalmazások fejlesztése az Always Encrypted használatával biztonságos enklávékkal