Dynamisk datamaskering i Fabric data warehouse

Gælder for:✅ SQL Analytics-slutpunkt og warehouse i Microsoft Fabric

Dynamisk datamaskering er en databeskyttelsesfunktion, der begrænser eksponeringen for følsomme data ved at maskere den for ikke-privilegerede brugere. Det forenkler design og kodning af sikkerhed i din applikation.

Dynamisk datamaskering hjælper med at forhindre uautoriseret visning af følsomme data. Administratorer angiver, hvor meget følsomme data der skal afsløres, med minimal effekt på applikationslaget. Du kan konfigurere dynamisk datamaskering på udpegede databasefelter for at skjule følsomme data i resultatsættene af forespørgsler. Dataene i databasen ændres ikke, så eksisterende applikationer kan fortsætte med at fungere uden ændringer, fordi maskeringsregler anvendes på forespørgselsresultater. Mange programmer kan maskere følsomme data uden at ændre eksisterende forespørgsler.

Dynamisk datamaskering giver følgende funktioner:

  • En central politik til maskering af data fungerer direkte på følsomme felter i databasen.
  • Privilegerede brugere eller roller kan udpeges til at få adgang til de følsomme data.
  • Du har maskeringsmuligheder at vælge imellem: fuld maskering og delvise maskeringsfunktioner samt en tilfældig maske til numeriske data.
  • Enkle Transact-SQL-kommandoer definerer og administrerer masker.

Dynamisk datamaskering forhindrer ikke databasebrugere i at forbinde direkte til databasen og køre udtømmende forespørgsler, der eksponerer dele af de følsomme data. Brug dynamisk datamaskering sammen med andre Fabric-sikkerhedsfunktioner som kolonne-niveau sikkerhed og række-niveau sikkerhed for at beskytte følsomme data i databasen.

Dynamiske datamaskeringsfunktioner

Definer en maskeringsregel på en kolonne i en tabel for at skjule dataene i den kolonne. Der findes fire typer masker.

Funktion Beskrivelse Eksempler
Standard Fuld maskering i henhold til datatyperne for de angivne felter.

I forbindelse med strengdatatyper skal du bruge XXXX (eller færre), hvis feltets størrelse er mindre end 4 tegn (tegn, nchar, varchar, nvarchar, tekst, ntext).

Til numeriske datatyper skal du bruge en nulværdi (bigint, bit, decimal, int, penge, numerisk, smallint, smallmoney, tinyint, float, real).

For datatyper for dato og klokkeslæt skal du bruge (dato, datetime2, 1900-01-01 00:00:00.0000000, datetimeoffset, smalldatetime, klokkeslæt).

I forbindelse med binære datatyper skal du bruge en enkelt byte med ASCII-værdien 0 (binær, varbinary, image).
Eksempel på kolonnedefinitionssyntaks: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULL

Eksempel på altersyntaks: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()')
Mailadresse Maskeringsmetode, der viser det første bogstav i en mailadresse og det konstante suffiks ".com" i form af en mailadresse. aXXX@XXXX.com. Eksempel på definitionssyntaks: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL

Eksempel på altersyntaks: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
Tilfældig En tilfældig maskefunktion til brug på en hvilken som helst numerisk type til at maskere den oprindelige værdi med en vilkårlig værdi inden for et angivet område. Eksempel på definitionssyntaks: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])')

Eksempel på altersyntaks: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
Brugerdefineret streng Maskeringsmetode, der viser det første og sidste bogstav og tilføjer en brugerdefineret margenstreng i midten. prefix,[padding],suffix

Hvis den oprindelige værdi er for kort til at fuldføre hele masken, vises en del af præfikset eller suffikset ikke.
Eksempel på definitionssyntaks: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULL

Eksempel på altersyntaks: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')

Dette forvandler et telefonnummer som 555.123.1234 til 5XXXXXXX.

Yderligere eksempel:

ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(5,"XXXXXXX",0)')

Dette forvandler et telefonnummer som 555.123.1234 til 555.1XXXXXXX.

Du kan få flere eksempler under Sådan implementerer du dynamisk datamaskering i Fabric data warehouse.

Tilladelser til dynamisk datamaskering

I Fabric data warehouse ser brugere maskerede data, når de forespørger maskerede kolonner, hvis de ikke er medlemmer af administrator-, medlem- eller bidragyderrollerne i arbejdsområdet, eller ikke har forhøjede rettigheder på Warehouse.

Følgende tabel viser de nødvendige tilladelser for hver dynamisk datamaskeringsoperation:

Operation Påkrævet tilladelse
Opret en tabel med maskerede kolonner CREATE TABLE og ALTER på skemaet
Tilføje, udskift eller fjern en maske på en kolonne ALTER ANY MASK og ALTER på bordet
Se maskerede data SELECT på bordet
Se umaskerede data UNMASK på kolonnen eller CONTROL på databasen

Grant ALTER ANY MASK til en sikkerhedsvagt. Giv UNMASK en bruger, så denne bruger kan hente umaskerede data fra maskerede kolonner.

Tilladelsen CONTROL i databasen inkluderer både ALTER ANY MASK og UNMASK, så brugere med sikkerhed CONTROL kan se umaskerede data. Administrative brugere eller roller som Admin, Medlem eller Bidragyder har CONTROL tilladelser til databasen som design og kan som standard se umaskerede data. Udvidede tilladelser til lageret omfatter CONTROL tilladelser.

Sikkerhedshensyn: undgå maskering ved at bruge inferens- eller brute-force-teknikker

Dynamisk datamaskering forenkler applikationsudviklingen ved at begrænse dataeksponeringen i et sæt foruddefinerede forespørgsler, som applikationen bruger. Selvom dynamisk datamaskering også kan hjælpe med at forhindre utilsigtet eksponering af følsomme data ved direkte adgang til data, kan brugere uden privilegier med forespørgselstilladelser bruge teknikker til at udlede de faktiske data.

For eksempel kan en bruger, der har tilladelse til at køre forespørgsler på warehouse, gætte værdier for at udlede maskerede data. Antag, at du definerer en maske på kolonnen [Employee].[Salary] . Brugeren forbinder direkte til databasen og begynder at gætte værdier, hvorefter værdien i Employees tabellen udledes[Salary]. De kører en intervalforespørgsel mod tabellen Employees :

SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;

Forespørgslen returnerer:

id Navn Månedsløn
62543 Jane Doe 0
91245 John Smith 0

Selvom kolonnen Salary er maskeret (værdierne vises som 0), WHERE bekræfter klausulen, at begge medarbejdere har en løn mellem $99.999 og $100.001. Brug ikke dynamisk datamaskering alene til fuldt ud at sikre følsomme data fra brugere med forespørgselsadgang til Warehouse- eller SQL-analyse-endpointet. Dynamisk datamaskering er passende til at forhindre utilsigtet eksponering af følsomme data, men beskytter ikke mod ondsindet hensigt om at udlede de underliggende data.

Håndter objektniveau-sikkerhed korrekt med SQL-granulære tilladelser, og følg altid princippet om mindst privilegium.

Næste trin