Dynamisk datamaskering i Fabric datalager

Gjelder for:✅ SQL Analytics-endepunkt og Warehouse i Microsoft Fabric

Dynamisk datamaskering er en databeskyttelsesfunksjon som begrenser eksponeringen av sensitive data ved å maskere den for ikke-privilegerte brukere. Det forenkler design og koding av sikkerhet i applikasjonen din.

Dynamisk datamaskering bidrar til å forhindre uautorisert visning av sensitive data. Administratorer spesifiserer hvor mye sensitiv data som skal avsløres, med minimal effekt på applikasjonslaget. Du kan konfigurere dynamisk datamaskering på utpekte databasefelt for å skjule sensitiv data i resultatsettene til spørringer. Dataene i databasen endres ikke, så eksisterende applikasjoner kan fortsette å fungere uten endringer fordi maskeringsregler brukes på spørringsresultatene. Mange programmer kan maskere sensitive data uten å endre eksisterende spørringer.

Dynamisk datamaskering gir disse mulighetene:

  • En sentral policy for datamaskering fungerer direkte på sensitive felt i databasen.
  • Privilegerte brukere eller roller kan utpekes til å få tilgang til de sensitive dataene.
  • Du har maskeringsmuligheter å velge mellom: full maskering og delvis maskering, og en tilfeldig maske for numeriske data.
  • Enkle Transact-SQL-kommandoer definerer og administrerer masker.

Dynamisk datamaskering hindrer ikke databasebrukere i å koble seg direkte til databasen og kjøre omfattende spørringer som eksponerer deler av de sensitive dataene. Bruk dynamisk datamaskering sammen med andre Fabric-sikkerhetsfunksjoner som kolonnenivå-sikkerhet og rad-nivå-sikkerhet for å beskytte sensitiv data i databasen.

Dynamiske datamaskeringsfunksjoner

Definer en maskeringsregel på en kolonne i en tabell for å skjule dataene i den kolonnen. Fire typer masker er tilgjengelige.

Function Bekrivelse Eksempler
Standard Fullstendig maskering i henhold til datatypene for de angitte feltene.

Bruk (eller færre) for strengdatatyper XXXX hvis størrelsen på feltet er færre enn 4 tegn (tegn, nchar, varchar, nvarchar, text, ntext).

For numeriske datatyper bruker du en nullverdi (bigint, bit, desimal, int, penger, numerisk, smallint, smallmoney, tinyint, float, real).

For datatyper for dato og klokkeslett bruker 1900-01-01 00:00:00.0000000 du (dato, datetime2, datetime, datetimeoffset, smalldatetime, time).

For binære datatyper bruker du én byte med ASCII-verdi 0 (binær, varbinær, bilde).
Eksempel på kolonnedefinisjonssyntaks: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULL

Eksempel på endringssyntaks: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()')
E-postadresse Maskeringsmetode som viser den første bokstaven i en e-postadresse og konstant suffikset «.com», i form av en e-postadresse. aXXX@XXXX.com. Eksempel på definisjonssyntaks: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL

Eksempel på endringssyntaks: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
Tilfeldig En tilfeldig maskefunksjon for bruk på en hvilken som helst numerisk type for å maskere den opprinnelige verdien med en tilfeldig verdi innenfor et angitt område. Eksempel på definisjonssyntaks: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])')

Eksempel på endringssyntaks: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
Egendefinert streng Maskeringsmetode som viser de første og siste bokstavene og legger til en egendefinert utfyllingsstreng i midten. prefix,[padding],suffix

Hvis den opprinnelige verdien er for kort til å fullføre hele masken, vises ikke en del av prefikset eller suffikset.
Eksempel på definisjonssyntaks: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULL

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

Dette gjør et telefonnummer som 555.123.1234 om til 5XXXXXXX.

Tilleggseksempel:

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

Dette gjør et telefonnummer som 555.123.1234 om til 555.1XXXXXXX.

Hvis du vil ha flere eksempler, kan du se Slik implementerer du dynamisk datamaskering i Fabric datalager.

Tillatelser for dynamisk datamaskering

I Fabric datalager ser brukere maskerte data når de søker i maskerte kolonner hvis de ikke er medlemmer av Administrator-, Medlem- eller Bidragsyter-rollene i arbeidsområdet, eller ikke har forhøyede rettigheter på Warehouse.

Følgende tabell viser tillatelsene som kreves for hver dynamisk datamaskeringsoperasjon:

Operasjon Påkrevd tillatelse
Lag en tabell med maskerte kolonner CREATE TABLE og ALTER på skjemaet
Legg til, bytt ut eller fjern en maske på en kolonne ALTER ANY MASK og ALTER på bordet
Se maskerte data SELECT På bordet
Se umaskerte data UNMASK på kolonnen eller CONTROL på databasen

Grant ALTER ANY MASK til en sikkerhetsoffiser. Gi UNMASK til en bruker slik at brukeren kan hente umaskerte data fra maskerte kolonner.

Tillatelsen CONTROL i databasen inkluderer både ALTER ANY MASK og UNMASK, slik at brukere som har CONTROL det kan se umaskerte data. Administrative brukere eller roller som Administrator, Medlem eller Bidragsyter har CONTROL tillatelse til databasen som design og kan som standard se umaskerte data. Utvidede tillatelser på lageret inkluderer CONTROL tillatelse.

Sikkerhetshensyn: å omgå maskering ved å bruke inferens- eller brute-force-teknikker

Dynamisk datamaskering forenkler applikasjonsutviklingen ved å begrense dataeksponering i et sett forhåndsdefinerte spørringer som applikasjonen bruker. Selv om dynamisk datamaskering også kan bidra til å forhindre utilsiktet eksponering av sensitiv data ved direkte tilgang til data, kan brukere uten privilegier med spørringstillatelser bruke teknikker for å utlede de faktiske dataene.

For eksempel kan en bruker som har tillatelse til å kjøre spørringer på lageret gjette verdier for å utlede maskerte data. Anta at du definerer en maske på kolonnen [Employee].[Salary] . Brukeren kobler seg direkte til databasen og begynner å gjette verdier, og slutter til slutt [Salary] verdien i tabellen Employees . De kjører en områdespørring mot tabellen Employees :

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

Spørringen returnerer:

ID Name Lønn
62543 Jane Doe 0
91245 John Smith 0

Selv om kolonnen Salary er maskert (verdiene vises som 0), WHERE bekrefter klausulen at begge ansatte har en lønn mellom $99 999 og $100 001. Ikke bruk dynamisk datamaskering alene for å fullstendig sikre sensitiv data fra brukere med spørringstilgang til Warehouse- eller SQL-analyse-endepunktet. Dynamisk datamaskering er passende for å forhindre utilsiktet eksponering for sensitive data, men det beskytter ikke mot ondsinnet hensikt om å utlede underliggende data.

Håndter objektnivåsikkerhet riktig med SQL-granulære tillatelser, og følg alltid prinsippet om minste privilegium.

Neste trinn