Sikkerhet på tabell-, kolonne- og radnivå i OneLake

OneLake-sikkerhetsroller kontrollerer hvem som kan få tilgang til dataene i dine Fabric-produkter. Noen ganger er det for grovt å gi eller nekte tilgang til en hel gjenstand. Du må kanskje skjule sensitive kolonner, begrense hvilke rader en bruker ser, eller kun eksponere visse tabeller. Innenfor en rolle kan du begrense tilgangen på tre granularitetsnivåer: objektnivå sikkerhet for tabeller og mapper, kolonnenivå sikkerhet (CLS) for individuelle kolonner, og radnivå sikkerhet (RLS) for enkeltrader.

Denne artikkelen forklarer hva hver kontroll gjør og hvordan OneLake håndhever den. For å lage disse kontrollene, se Opprett og administrer OneLake sikkerhetsroller.

OneLake sikkerhetsroller bruker en tilskuddsmodell for å gi tilgang til data. Du kan ikke nekte tilgang som er gitt gjennom en annen rolle eller tillatelsesmodell. Av den grunn begrenser ikke disse kontrollene tilgangen for brukere i Admin-, Medlem- og Bidragsyter-rollene på arbeidsområdenivå.

Sikkerhet for tabeller og mapper

Sikkerhet på tabell- og mappenivå, også kalt objektnivåsikkerhet (OLS), lar deg gi tilgang til spesifikke tabeller eller mapper i et dataelement. Med OLS oppretter du tillatelser for både strukturerte og ustrukturerte data på mappenivå. Fordi Delta Parquet-tabeller i OneLake representeres som mapper, kan du sikre tabeller på samme måte som du sikrer mapper. Skjemaer er også mapper, så du kan sikre dem på samme måte.

Sikkerhet på søyle- og radnivå

OneLake-sikkerhet håndhever sikkerhet på kolonne- og radnivå på én av to måter:

  • Filtertabeller: En bruker som spør en tabell ved å bruke en Fabric-motor, som Spark-notatbøker, eller en autorisert tredjepartsmotor, ser kun kolonnene eller radene som CLS- eller RLS-reglene tillater.
  • Blokktabeller: En bruker som spør en tabell ved å bruke en uautorisert tredjepartsmotor kan ikke lese tabellen.

OneLake-sikkerhet kan håndheve CLS- og RLS-regler for Delta Parquet-tabeller eller virtualiserte Iceberg-tabeller. Regler brukt på andre tabelltyper blokkerer tilgang til hele tabellen for medlemmene i rollen.

Hvis en CLS- eller RLS-regel har en mismatch med tabellen den er definert på, feiler spørringen og returnerer ingen data. For eksempel oppstår en mismatch når en regel refererer til en kolonne som ikke er i tabellen.

Sikkerhet på kolonnenivå

Kolonnenivåsikkerhet (CLS) gir tilgang til utvalgte kolonner i en tabell i stedet for hele tabellen. Data i kolonner som du fjerner fra den tillatte listen er ikke synlige for brukerne.

For tabeller filtrert med CLS gjelder følgende atferd:

  • Hvis en bruker kjører en select * spørring på en tabell hvor de bare har tilgang til noen av kolonnene, oppfører CLS-reglene seg forskjellig avhengig av Fabric-motoren:
    • Spark-notatbøker: Spørringen lykkes og viser kun de tillatte kolonnene.
    • SQL-analyseendepunkt: Spørringen gir en feil og blokkerer tilgang til kolonnene brukeren ikke har tilgang til.
    • Semantiske modeller: Spørringen gir en feil og blokkerer tilgang til kolonnene brukeren ikke kan få tilgang til.
  • Navnet på en sikret kolonne kan være synlig i visse opplevelser, men dataverdiene vises aldri.

Sikkerhet på radnivå

Sikkerhet på radnivå (RLS) definerer restriksjoner på radnivå for tabelldata lagret i OneLake. Du definerer roller som inneholder regler for å filtrere datarader for medlemmene i rollen. Når et medlem av en RLS-rolle spør dataene, evaluerer OneLake RLS-reglene og returnerer kun de tillatte radene. Rader er et begrep som kun er relevant for tabelldata, så du kan ikke definere RLS for ikke-tabellmapper eller ustrukturert data.

For tabeller filtrert med RLS gjelder følgende oppførsel:

  • Tilgang til en tabell kan blokkeres hvis RLS-setningen inneholder syntaksfeil som hindrer at den evalueres.

For syntaksen som brukes til å skrive RLS-regler, se Row-level security syntax reference.

Kombinere sikkerhet på radnivå og kolonnenivå

Sikkerhet på radnivå og kolonnenivå kan brukes sammen for å begrense brukertilgang til en tabell. De to policyene må imidlertid brukes ved hjelp av én enkelt OneLake-sikkerhetsrolle. I dette scenarioet begrenses tilgangen til data i henhold til reglene som er angitt i én rolle.

OneLake-sikkerhet støtter ikke kombinasjonen av to eller flere roller der én inneholder RLS-regler, og en annen inneholder CLS-regler. Brukere som prøver å få tilgang til tabeller som er en del av en rollekombinasjon som ikke støttes, mottar spørringsfeil.