Dela via


Implementera säkerhet på radnivå i Microsoft Fabric-datalager

Gäller för:✅ SQL-analysslutpunkt och lager i Microsoft Fabric

Med säkerhet på radnivå (RLS) i Fabric Warehouse och SQL-analysslutpunkten kan du styra åtkomsten till rader i en databastabell baserat på användarroller och predikat. Mer information finns i Säkerhet på radnivå i Fabric-datalager.

Den här guiden beskriver stegen för att implementera säkerhet på radnivå i Microsoft Fabric Warehouse eller SQL-analysslutpunkten.

Förutsättningar

Kontrollera att du har följande innan du börjar:

  1. En infrastrukturarbetsyta med en aktiv kapacitet eller utvärderingskapacitet.
  2. En Fabric Warehouse- eller SQL-analysslutpunkt på en Lakehouse.
  3. Antingen administratörs-, medlems- eller deltagarbehörigheter på arbetsytan eller utökade behörigheter på slutpunkten för lager- eller SQL-analys.

1. Anslut

  1. Logga in med ett konto med förhöjd åtkomst på slutpunkten för lager- eller SQL-analys. (Antingen administratörs-/medlems-/deltagarrollen på arbetsytan eller Kontrollbehörigheter på slutpunkten för lager- eller SQL-analys).
  2. Öppna arbetsytan Infrastruktur och navigera till slutpunkten för lager- eller SQL-analys där du vill tillämpa säkerhet på radnivå.

2. Definiera säkerhetsprinciper

  1. Fastställ de roller och predikater som du vill använda för att styra åtkomsten till data. Roller definierar vem som kan komma åt data och predikat definierar villkoren för åtkomst.

  2. Skapa säkerhetspredikat. Säkerhetspredikat är villkor som avgör vilka rader en användare kan komma åt. Du kan skapa säkerhetspredikat som infogade tabellvärdesfunktioner. Den här enkla övningen förutsätter att det finns en kolumn i datatabellen, UserName_column, som innehåller det relevanta användarnamnet, som fylls i av systemfunktionen 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. Ersätt YourSecurityPolicy med ditt principnamn, tvf_securitypredicate med namnet på din predikatfunktion, sampleschema med namnet på schemat och sampletable med namnet på måltabellen.

  4. Ersätt UserName_column med en kolumn i tabellen som innehåller användarnamn.

  5. Ersätt WHERE @UserName = USER_NAME(); med en WHERE sats som matchar önskat predikatbaserat säkerhetsfilter. Detta filtrerar till exempel de data där UserName kolumnen, mappad till parametern @UserName , matchar resultatet av systemfunktionen USER_NAME().

  6. Upprepa de här stegen för att skapa säkerhetsprinciper för andra tabeller om det behövs.

3. Testa säkerhet på radnivå

  1. Logga in på Infrastrukturresurser som en användare som är medlem i en roll med en associerad säkerhetsprincip. Använd följande fråga för att verifiera det värde som ska matchas i tabellen.

    SELECT USER_NAME() 
    
  2. Fråga databastabellerna för att kontrollera att säkerhet på radnivå fungerar som förväntat. Användare bör endast se data som uppfyller säkerhetspredikatet som definierats i deras roll. Till exempel:

    SELECT * FROM sampleschema.sampletable
    
  3. Liknande filtrerade resultat för användaren filtreras med andra program som använder Microsoft Entra-autentisering för databasåtkomst. Mer information finns i Microsoft Entra-autentisering som ett alternativ till SQL-autentisering i Microsoft Fabric.

4. Övervaka och underhålla säkerhet på radnivå

Övervaka och uppdatera regelbundet dina säkerhetsprinciper på radnivå när dina säkerhetskrav utvecklas. Håll reda på rolltilldelningar och se till att användarna har rätt åtkomst.