Dynamické maskování dat v datových skladech prostředků infrastruktury
Platí pro:✅ Koncový bod sql Analytics a sklad v Microsoft Fabric
Dynamické maskování dat omezuje přístup k citlivým datům pomocí jejich maskování pro neprivilegované uživatele. Můžete ho použít ke značnému zjednodušení návrhu a kódování zabezpečení ve vaší aplikaci.
Dynamické maskování dat pomáhá zabránit neoprávněnému prohlížení citlivých dat tím, že správcům umožňuje určit, kolik citlivých dat se má odhalit, s minimálním účinkem na aplikační vrstvu. Dynamické maskování dat lze nakonfigurovat u určených databázových polí, aby se v sadách výsledků dotazů skryla citlivá data. Při dynamickém maskování dat se data v databázi nezmění, takže je můžete použít s existujícími aplikacemi, protože se na výsledky dotazu použijí pravidla maskování. Mnoho aplikací může maskovat citlivá data beze změny existujících dotazů.
- Zásady centrálního maskování dat fungují přímo na citlivá pole v databázi.
- Určete privilegované uživatele nebo role, které mají přístup k citlivým datům.
- Dynamické maskování dat obsahuje úplné maskování a částečné funkce maskování a náhodnou masku pro číselná data.
- Jednoduché příkazy Jazyka Transact-SQL definují a spravují masky.
Účelem dynamického maskování dat je omezit vystavení citlivých dat a zabránit uživatelům, kteří by k datům neměli mít přístup. Dynamické maskování dat nemá za cíl zabránit uživatelům databáze v přímém připojení k databázi a spouštění vyčerpávajících dotazů, které zpřístupňují části citlivých dat.
Dynamické maskování dat doplňuje další funkce zabezpečení infrastruktury, jako je zabezpečení na úrovni sloupců a zabezpečení na úrovni řádků. Důrazně doporučujeme používat tyto funkce ochrany dat společně, aby bylo možné chránit citlivá data v databázi.
Definování dynamické masky dat
Pravidlo maskování lze definovat u sloupce v tabulce, aby bylo možné obfusovat data v daném sloupci. K dispozici jsou čtyři typy masek.
Function | Popis | Příklady |
---|---|---|
Výchozí | Úplné maskování podle datových typů určených polí. U datových typů řetězců použijte XXXX (nebo méně), pokud je velikost pole menší než 4 znaky (char, nchar, varchar, nvarchar, text, ntext).Pro číselné datové typy použijte nulovou hodnotu (bigint, bit, decimal, int, money, numeric, smallint, smallmoney, tinyint, float, real). U datových typů data a času použijte 1900-01-01 00:00:00.0000000 (datum, datetime2, datetime, datetimeoffset, smalldatetime, time).Pro binární datové typy použijte jeden bajt hodnoty ASCII 0 (binární, varbinary, obrázek). |
Příklad syntaxe definice sloupce: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULL Příklad alter syntaxe: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()') |
Metoda maskování, která zveřejňuje první písmeno e-mailové adresy a konstantní příponu ".com", ve formě e-mailové adresy. aXXX@XXXX.com . |
Příklad syntaxe definice: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL Příklad alter syntaxe: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()') |
|
Náhodné | Funkce náhodného maskování pro použití u libovolného číselného typu k maskování původní hodnoty s náhodnou hodnotou v zadaném rozsahu. | Příklad syntaxe definice: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])') Příklad alter syntaxe: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)') |
Vlastní řetězec | Metoda maskování, která zveřejňuje první a poslední písmena a přidá doprostřed vlastní řetězec odsazení. prefix,[padding],suffix Pokud je původní hodnota příliš krátká k dokončení celé masky, část předpony nebo přípony není vystavena. |
Příklad syntaxe definice: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULL Příklad alter syntaxe: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)') To změní telefonní číslo jako 555.123.1234 na 5XXXXXXX . Další příklad: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(5,"XXXXXXX",0)') To změní telefonní číslo jako 555.123.1234 na 555.1XXXXXXX . |
Další příklady najdete v tématu Implementace dynamického maskování dat v datovém skladu Fabric.
Oprávnění
Uživatelům bez oprávnění správce, člena nebo přispěvatele v pracovním prostoru a bez zvýšených oprávnění ve skladu se zobrazí maskovaná data.
K vytvoření tabulky s dynamickou maskou dat nepotřebujete žádná zvláštní oprávnění, pouze standardní CREATE TABLE
a ALTER
na oprávnění schématu.
Přidání, nahrazení nebo odebrání masky sloupce vyžaduje ALTER ANY MASK
oprávnění a ALTER
oprávnění k tabulce. Je vhodné udělit ALTER ANY MASK
bezpečnostnímu důstojníkovi.
Uživatelé s oprávněním SELECT
k tabulce mohou prohlížet data tabulky. Sloupce definované jako maskované zobrazí maskovaná data. UNMASK
Udělte uživateli oprávnění, aby mohl načítat nemaskovaná data ze sloupců, pro které je definované maskování.
Oprávnění CONTROL
k databázi zahrnuje jak ALTER ANY MASK
UNMASK
oprávnění, tak i oprávnění, která uživateli umožňují zobrazit nemaskovaná data. Správci nebo role, jako je správce, člen nebo přispěvatel, mají oprávnění CONTROL k databázi záměrně a můžou ve výchozím nastavení zobrazovat nemaskovaná data. Zvýšená oprávnění pro sklad zahrnují CONTROL
oprávnění.
Důležité informace o zabezpečení: Obejití maskování pomocí technik odvozování nebo hrubou silou
Dynamické maskování dat je navržené tak, aby zjednodušilo vývoj aplikací omezením vystavení dat v sadě předdefinovaných dotazů používaných aplikací. Dynamické maskování dat může být užitečné také k tomu, aby se zabránilo náhodnému vystavení citlivých dat při přímém přístupu k datům, je důležité si uvědomit, že neprivilegovaní uživatelé s oprávněními k dotazům můžou použít techniky pro získání přístupu k skutečným datům.
Představte si například uživatele, který má dostatečná oprávnění ke spouštění dotazů ve skladu, a snaží se uhodnout podkladová data a nakonec odvodit skutečné hodnoty. Předpokládejme, že máme pro sloupec definovanou masku [Employee].[Salary]
a tento uživatel se připojí přímo k databázi a začne odhadovat hodnoty, nakonec odvozuje [Salary]
hodnotu v Employees
tabulce:
SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;
Výsledky:
ID | Name | Mzda |
---|---|---|
62543 | Neznámá žena | 0 |
91245 | John Smith | 0 |
To ukazuje, že dynamické maskování dat by se nemělo používat samostatně k úplnému zabezpečení citlivých dat od uživatelů s přístupem k dotazu na koncový bod Warehouse nebo SQL Analytics. Je vhodné zabránit odhalení citlivých dat, ale nechrání před škodlivým záměrem odvodit podkladová data.
Je důležité správně spravovat zabezpečení na úrovni objektů pomocí podrobných oprávnění SQL a vždy dodržovat minimální požadovaný princip oprávnění.
Související obsah
- Role pracovního prostoru v datových skladech v prostředcích infrastruktury
- Zabezpečení na úrovni sloupců v datových skladech Fabric
- Zabezpečení na úrovni řádků v datových skladech Fabric
- Zabezpečení datových skladů v Microsoft Fabric