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:Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics (csak dedikált SQL-készletek)
SQL-adatbázis a Fabricben
Az Azure SQL Database, a Microsoft Fabric SQL Database, az Azure SQL Managed Instance és az Azure Synapse Analytics támogatja a dinamikus adatmaszkolást (DDM). A dinamikus adatmaszkolás korlátozza az érzékeny adatok expozícióját azáltal, hogy elrejti azokat a nem privilegizált felhasználók számára.
A dinamikus adatmaszkolás segít megelőzni a bizalmas adatokhoz való jogosulatlan hozzáférést azáltal, hogy az ügyfelek meghatározhatják, mennyit kívánnak felfedni a bizalmas adatokból, miközben minimális hatással van az alkalmazásrétegre. Ez egy szabályzatalapú biztonsági funkció, amely elrejti a bizalmas adatokat a lekérdezés eredményhalmazában a kijelölt adatbázismezőkben, miközben az adatbázisban lévő adatok nem változnak.
Előfordulhat például, hogy egy ügyfélszolgálati munkatárs az e-mail-cím több karakterének megerősítésével azonosítja a hívót, de a teljes e-mail-címet nem szabad felfedni a szolgáltatás képviselőjének. Maszkolási szabály definiálható, amely a lekérdezés eredményhalmazában a teljes e-mail-címet elfedi. Egy másik példaként meg lehet határozni egy megfelelő adatmaszkot a személyes adatok védelméhez, hogy a fejlesztő hibaelhárítási célokból lekérdezhesse az éles környezeteket anélkül, hogy megsértené a megfelelőségi előírásokat.
A dinamikus adatmaszkolás alapjai
Az Azure SQL Database esetében dinamikus adatmaszkolási szabályzatot kell beállítania az Azure Portalon az SQL Database konfigurációs panelJének Biztonság területén a Dinamikus adatmaszkolás panel kiválasztásával.
Ez a funkció nem állítható be az Azure Portalon felügyelt SQL-példányhoz vagy SQL-adatbázishoz a Fabricben. Ehelyett használja a Transact-SQL (T-SQL) kifejezést, ahogyan a jelen cikkben található Részletes engedély példában is látható. További információ: Dinamikus adatmaszkolás.
Dinamikus adatmaszkolási szabályzat
A maszkolásból kizárt SQL-felhasználók: Olyan SQL-felhasználók készlete, amelyek tartalmazhatják a Microsoft Entra-azonosítóból származó identitásokat, amelyek maszkolatlan adatokat kapnak az SQL-lekérdezés eredményeiben. Az olyan rendszergazdai jogosultságokkal rendelkező felhasználók, mint a kiszolgálóadminisztrátor, a Microsoft Entra rendszergazda és db_owner szerepkörrel rendelkező felhasználók maszk nélkül tekinthetik meg az eredeti adatokat. (Megjegyzés: Az SQL Server sysadmin szerepkörére is vonatkozik)
Maszkolás szabályai: Szabálykészlet, amely meghatározza a maszkolandó kijelölt mezőket és a használt maszkoló függvényt. A kijelölt mezők az adatbázisséma nevével, a táblanévvel és az oszlopnévvel határozhatók meg.
Maszkoló függvények: Különböző forgatókönyvek adatexpozícióját szabályozó módszerek készlete.
Maszkoló függvény Maszklogika Alapértelmezett Teljes maszkolás a kijelölt mezők adattípusainak megfelelően
HasználjaXXXX(vagy kevesebb) ha a mező mérete 4 karakternél kisebb a sztring adattípusokhoz (nchar, ntext, nvarchar).
Használjon nulla értéket numerikus adattípusokhoz (bigint, bit, decimális, int, pénz, numerikus, smallint, smallmoney, tinyint, float, real).
Dátum/idő adattípusokhoz (1900-01-01, datetime2, datetime, datetimeoffset, smalldatetime, time) használható.
A sql_variant esetében a rendszer az aktuális típus alapértelmezett értékét használja.
XML esetén a dokumentumot használja a rendszer<masked />.
Használjon üres értéket speciális adattípusokhoz (időbélyeg, tábla, hierarchiaazonosító, uniqueidentifier, bináris, kép, varbináris és térbeli típusok).Hitelkártya Maszkolásos módszer, amely a kijelölt mezők utolsó négy számjegyét teszi elérhetővé, és egy állandó sztringet ad hozzá előtagként hitelkártya formájában. XXXX-XXXX-XXXX-1234E-mail Maszkoló módszer, amely fedi fel az első betűt, és a domain nevet helyettesíti XXX.com-mal egy állandó sztring prefix használatával e-mail-cím formájában. aXX@XXXX.comVéletlenszerű szám Maszkolásos módszer, amely véletlenszerű számot hoz létre a kijelölt határok és a tényleges adattípusok alapján. Ha a kijelölt határok egyenlők, akkor a maszkoló függvény állandó szám.
Egyéni szöveg Maszkolási módszer, amely az első és az utolsó karaktert láthatóvá teszi, és középen hozzáad egy egyéni kitöltési karakterláncot. Ha az eredeti karakterlánc rövidebb, mint a megadott előtag és utótag, akkor csak a kitöltési karakterlánc használatos. prefix[padding]suffix
Datetime Lehetővé teszi a részletes maszkolást a dátum/idő oszlopokhoz, nevezetesen a datetime, datetime2, date, time, datetimeoffset és smalldatetime oszlopokhoz. Bizonyos összetevőket maszkolhat, például év ( datetime("Y")), hónap (), nap (datetime("M")datetime("D")), óra (datetime("h")), perc (datetime("m")) vagy másodperc (datetime("s")). A T-SQL használatával alkalmazza ezt a függvényt.
Például:
- Maszk éve:ALTER COLUMN BirthDay ADD MASKED WITH (FUNCTION = 'datetime("Y")').
- Maszk hónap:ALTER COLUMN BirthDay ADD MASKED WITH (FUNCTION = 'datetime("M")').
- Maszkidő:ALTER COLUMN BirthDay ADD MASKED WITH (FUNCTION = 'datetime("m")').
Maszkolandó mezők
A DDM-javaslatok motorja az adatbázis bizonyos mezőit potenciálisan bizalmas mezőkként jelöli meg, amelyek maszkolásra alkalmas jelöltek lehetnek. A portál Dinamikus adatmaszkolás paneljén láthatja az adatbázis ajánlott oszlopait. Válassza a Maszk hozzáadása egy vagy több oszlophoz lehetőséget, majd válassza ki a megfelelő maszkoló függvényt, majd a Mentés lehetőséget, ha maszkot szeretne alkalmazni ezekre a mezőkre.
Dinamikus adatmaszkolás kezelése a T-SQL használatával
- Dinamikus adatmaszk létrehozásához lásd: Dinamikus adatmaszk létrehozása.
- Ha maszkot szeretne felvenni vagy szerkeszteni egy meglévő oszlopban, olvassa el a Maszk hozzáadása vagy szerkesztése meglévő oszlopon című témakört.
- A maszkolás nélküli adatok megtekintésére vonatkozó engedélyek megadásáról a maszkolt adatok megtekintésére vonatkozó engedélyek megadása című témakörben olvashat.
- Dinamikus adatmaszk elvetéséhez lásd: Dinamikus adatmaszk elvetése.
Dinamikus adatmaszkolás beállítása az adatbázishoz PowerShell-parancsmagok használatával
Adatmaszkolási szabályzatok
Adatmaszkolás szabályai
- Get-AzSqlDatabaseDataMaskingRule
- New-AzSqlDatabaseDataMaskingRule
- Remove-AzSqlDatabaseDataMaskingRule
- Set-AzSqlDatabaseDataMaskingRule
Dinamikus adatmaszkolás beállítása az adatbázishoz a REST API használatával
A REST API-val programozott módon kezelheti az adatmaszkolási szabályzatot és szabályokat. A közzétett REST API a következő műveleteket támogatja:
Adatmaszkolási szabályzatok
- Létrehozás vagy frissítés: Adatbázis-adatmaszkolási szabályzatot hoz létre vagy frissít.
- Lekérés: Lekéri az adatbázis adatmaszkolási szabályzatát.
Adatmaszkolás szabályai
- Létrehozás vagy frissítés: Adatbázis-adatmaszkolási szabályt hoz létre vagy frissít.
- Adatbázis szerinti lista: Lekéri az adatbázis adatmaszkolási szabályainak listáját.
Permissions
A dinamikus adatmaszkolást a következő beépített szerepkörökkel konfigurálhatja:
A dinamikus adatmaszkolás használatához a következő műveletek szükségesek:
Olvasás/írás:
Microsoft.Sql/servers/databases/dataMaskingPolicies/*
Olvas:
Microsoft.Sql/servers/databases/dataMaskingPolicies/read
Ír:
Microsoft.Sql/servers/databases/dataMaskingPolicies/write
A dinamikus adatmaszkolás T-SQL-paranccsal történő használatakor az engedélyekről az Engedélyek című témakörben olvashat bővebben.
Részletes jogosultsági példa
Megakadályozzuk a bizalmas adatokhoz való jogosulatlan hozzáférést, és maszkolással megszabályozzuk azokat a különböző adatbázis szinteken, hogy elrejtsük őket a jogosulatlan felhasználók elől. Engedélyeket adhat vagy vonhat vissza UNMASK adatbázisszinten, sémaszinten, táblaszinten vagy oszlopszinten bármely adatbázis-felhasználónak vagy -szerepkörnek. A Microsoft Entra-hitelesítéssel UNMASK kombinálva az engedélyek kezelhetők az Azure-környezetben karbantartott felhasználók, csoportok és alkalmazások számára. Az UNMASK engedély részletes módot biztosít az adatbázisban tárolt adatok jogosulatlan hozzáférésének szabályozására és korlátozására, valamint az adatbiztonság kezelésének javítására.
Felhasználói táblákat tartalmazó séma létrehozása:
CREATE SCHEMA Data; GOTáblázat létrehozása maszkolt oszlopokkal:
CREATE TABLE Data.Membership ( MemberID INT IDENTITY (1, 1) NOT NULL, FirstName VARCHAR (100) MASKED WITH (FUNCTION = 'partial(1, "xxxxx", 1)') NULL, LastName VARCHAR (100) NOT NULL, Phone VARCHAR (12) MASKED WITH (FUNCTION = 'default()') NULL, Email VARCHAR (100) MASKED WITH (FUNCTION = 'email()') NOT NULL, DiscountCode SMALLINT MASKED WITH (FUNCTION = 'random(1, 100)') NULL, BirthDay DATETIME MASKED WITH (FUNCTION = 'default()') NULL );Mintaadatok beszúrása:
INSERT INTO Data.Membership (FirstName, LastName, Phone, Email, DiscountCode, BirthDay) VALUES ('Roberto', 'Tamburello', '555.123.4567', 'RTamburello@contoso.com', 10, '1985-01-25 03:25:05'), ('Janice', 'Galvin', '555.123.4568', 'JGalvin@contoso.com.co', 5, '1990-05-14 11:30:00'), ('Shakti', 'Menon', '555.123.4570', 'SMenon@contoso.net', 50, '2004-02-29 14:20:10'), ('Zheng', 'Mu', '555.123.4569', 'ZMu@contoso.net', 40, '1990-03-01 06:00:00');Szolgáltatástáblákat tartalmazó séma létrehozása:
CREATE SCHEMA Service; GOSzolgáltatástábla létrehozása maszkolt oszlopokkal:
CREATE TABLE Service.Feedback ( MemberID INT IDENTITY (1, 1) NOT NULL, Feedback VARCHAR (100) MASKED WITH (FUNCTION = 'default()') NULL, Rating INT MASKED WITH (FUNCTION = 'default()'), Received_On DATETIME );Mintaadatok beszúrása:
INSERT INTO Service.Feedback (Feedback, Rating, Received_On) VALUES ('Good', 4, '2022-01-25 11:25:05'), ('Excellent', 5, '2021-12-22 08:10:07'), ('Average', 3, '2021-09-15 09:00:00');Hozzon létre különböző felhasználókat az adatbázisban:
CREATE USER ServiceAttendant WITHOUT LOGIN; GO CREATE USER ServiceLead WITHOUT LOGIN; GO CREATE USER ServiceManager WITHOUT LOGIN; GO CREATE USER ServiceHead WITHOUT LOGIN; GOOlvasási engedélyek megadása az adatbázis felhasználóinak:
ALTER ROLE db_datareader ADD MEMBER ServiceAttendant; ALTER ROLE db_datareader ADD MEMBER ServiceLead; ALTER ROLE db_datareader ADD MEMBER ServiceManager; ALTER ROLE db_datareader ADD MEMBER ServiceHead;Különböző
UNMASKengedélyek megadása a felhasználóknak:Oszlopszintű
UNMASKengedély megadása a következőhözServiceAttendant:GRANT UNMASK ON Data.Membership (FirstName) TO ServiceAttendant;Táblaszintű
UNMASKengedély megadása a következőhözServiceLead:GRANT UNMASK ON Data.Membership TO ServiceLead;A
UNMASKsémaszintű engedély megadása a következőnek:ServiceManagerGRANT UNMASK ON SCHEMA::Data TO ServiceManager; GRANT UNMASK ON SCHEMA::Service TO ServiceManager;Adatbázisszintű
UNMASKengedélyt adjServiceHead-nak/nak;GRANT UNMASK TO ServiceHead;
Az adatok lekérdezése a felhasználói
ServiceAttendantkörnyezetében:EXECUTE AS USER = 'ServiceAttendant'; SELECT MemberID, FirstName, LastName, Phone, Email, BirthDay FROM Data.Membership; SELECT MemberID, Feedback, Rating FROM Service.Feedback; REVERT;Az adatok lekérdezése a felhasználói
ServiceLeadkörnyezetében:EXECUTE AS USER = 'ServiceLead'; SELECT MemberID, FirstName, LastName, Phone, Email, BirthDay FROM Data.Membership; SELECT MemberID, Feedback, Rating FROM Service.Feedback; REVERT;Az adatok lekérdezése a felhasználói
ServiceManagerkörnyezetében:EXECUTE AS USER = 'ServiceManager'; SELECT MemberID, FirstName, LastName, Phone, Email, BirthDay FROM Data.Membership; SELECT MemberID, Feedback, Rating FROM Service.Feedback; REVERT;** Lekérdezze az adatokat a
ServiceHeadfelhasználó kontextusábanEXECUTE AS USER = 'ServiceHead'; SELECT MemberID, FirstName, LastName, Phone, Email, BirthDay FROM Data.Membership; SELECT MemberID, Feedback, Rating FROM Service.Feedback; REVERT;Az engedélyek visszavonásához
UNMASKhasználja a következő T-SQL-utasításokat:REVOKE UNMASK ON Data.Membership (FirstName) FROM ServiceAttendant; REVOKE UNMASK ON Data.Membership FROM ServiceLead; REVOKE UNMASK ON SCHEMA::Data FROM ServiceManager; REVOKE UNMASK ON SCHEMA::Service FROM ServiceManager; REVOKE UNMASK FROM ServiceHead;