Del via


Implementere sikkerhet på radnivå i Datalager for Microsoft Fabric

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

Sikkerhet på radnivå (RLS) i Fabric Warehouse og SQL Analytics-endepunktet gir deg mulighet til å kontrollere tilgangen til rader i en databasetabell basert på brukerroller og predikater. Hvis du vil ha mer informasjon, kan du se Sikkerhet på radnivå i datalager for stoff.

Denne veiledningen veileder deg gjennom trinnene for å implementere sikkerhet på radnivå i Microsoft Fabric Warehouse eller SQL Analytics-endepunktet.

Forutsetning

Før du begynner, må du kontrollere at du har følgende:

  1. Et stoffarbeidsområde med en aktiv kapasitet eller prøvekapasitet.
  2. Et Fabric Warehouse- eller SQL Analytics-endepunkt på et Lakehouse.
  3. Enten administrator-, medlems- eller bidragsyterrettigheter på arbeidsområdet eller utvidede tillatelser på endepunktet for lageret eller SQL-analyse.

1. Koble til

  1. Logg på med en konto med forhøyet tilgang på endepunktet for lager- eller SQL-analyse. (Enten administrator/medlem/bidragsyterrolle på arbeidsområdet eller kontrolltillatelser på lageret eller sql analytics-endepunktet).
  2. Åpne Fabric-arbeidsområdet, og gå til endepunktet for Lager- eller SQL-analyse der du vil bruke sikkerhet på radnivå.

2. Definer sikkerhetspolicyer

  1. Bestem rollene og predikatene du vil bruke til å kontrollere tilgangen til data. Roller definerer hvem som har tilgang til data, og predikater definerer vilkårene for tilgang.

  2. Opprett sikkerhetspredikater. Sikkerhetspredikater er betingelser som bestemmer hvilke rader en bruker har tilgang til. Du kan opprette sikkerhetspredikater som innebygde tabellverdifunksjoner. Denne enkle øvelsen forutsetter at det er en kolonne i datatabellen, UserName_columnsom inneholder det relevante brukernavnet, fylt ut av systemfunksjonen USER_NAME().

    -- Creating schema for Security
    CREATE SCHEMA Security;
    GO
    
    -- Creating a function for the SalesRep evaluation
    CREATE FUNCTION Security.tvf_securitypredicate(@UserName AS varchar(50))
        RETURNS TABLE
    WITH SCHEMABINDING
    AS
        RETURN SELECT 1 AS tvf_securitypredicate_result
    WHERE @UserName = USER_NAME();
    GO
    
    -- Using the function to create a Security Policy
    CREATE SECURITY POLICY YourSecurityPolicy
    ADD FILTER PREDICATE Security.tvf_securitypredicate(UserName_column)
    ON sampleschema.sampletable
    WITH (STATE = ON);
    GO 
    
  3. Erstatt YourSecurityPolicy med policynavnet, tvf_securitypredicate med navnet på predikatfunksjonen, sampleschema med navnet på skjemaet og sampletable med navnet på måltabellen.

  4. Erstatt UserName_column med en kolonne i tabellen som inneholder brukernavn.

  5. Erstatt WHERE @UserName = USER_NAME(); med en WHERE setningsdel som samsvarer med det ønskede predikatbaserte sikkerhetsfilteret. Dette filtrerer for eksempel dataene der UserName kolonnen, tilordnet til parameteren @UserName , samsvarer med resultatet av systemfunksjonen USER_NAME().

  6. Gjenta disse trinnene for å opprette sikkerhetspolicyer for andre tabeller om nødvendig.

3. Test sikkerhet på radnivå

  1. Logg på Fabric som en bruker som er medlem av en rolle med en tilknyttet sikkerhetspolicy. Bruk følgende spørring til å bekrefte verdien som skal samsvares i tabellen.

    SELECT USER_NAME() 
    
  2. Spør databasetabellene for å bekrefte at sikkerhet på radnivå fungerer som forventet. Brukere bør bare se data som tilfredsstiller sikkerhetspredikatet som er definert i rollen deres. Eksempel:

    SELECT * FROM sampleschema.sampletable
    
  3. Lignende filtrerte resultater for brukeren filtreres med andre programmer som bruker Microsoft Entra-godkjenning for databasetilgang. Hvis du vil ha mer informasjon, kan du se Microsoft Entra-godkjenning som et alternativ til SQL-godkjenning i Microsoft Fabric.

4. Overvåk og vedlikehold sikkerhet på radnivå

Overvåk og oppdater sikkerhetspolicyene på radnivå regelmessig etter hvert som sikkerhetskravene dine utvikler seg. Hold oversikt over rolletilordninger, og sørg for at brukerne har riktig tilgang.