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:
- Et stoffarbeidsområde med en aktiv kapasitet eller prøvekapasitet.
- Et Fabric Warehouse- eller SQL Analytics-endepunkt på et Lakehouse.
- Enten administrator-, medlems- eller bidragsyterrettigheter på arbeidsområdet eller utvidede tillatelser på endepunktet for lageret eller SQL-analyse.
1. Koble til
- 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).
- Åpne Fabric-arbeidsområdet, og gå til endepunktet for Lager- eller SQL-analyse der du vil bruke sikkerhet på radnivå.
2. Definer sikkerhetspolicyer
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.
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_column
som 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
Erstatt
YourSecurityPolicy
med policynavnet,tvf_securitypredicate
med navnet på predikatfunksjonen,sampleschema
med navnet på skjemaet ogsampletable
med navnet på måltabellen.Erstatt
UserName_column
med en kolonne i tabellen som inneholder brukernavn.Erstatt
WHERE @UserName = USER_NAME();
med enWHERE
setningsdel som samsvarer med det ønskede predikatbaserte sikkerhetsfilteret. Dette filtrerer for eksempel dataene derUserName
kolonnen, tilordnet til parameteren@UserName
, samsvarer med resultatet av systemfunksjonen USER_NAME().Gjenta disse trinnene for å opprette sikkerhetspolicyer for andre tabeller om nødvendig.
3. Test sikkerhet på radnivå
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()
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
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.