Udostępnij za pośrednictwem


Implementowanie zabezpieczeń na poziomie wiersza w magazynowaniu danych w usłudze Microsoft Fabric

Dotyczy: punkt końcowy analizy SQL i magazyn w usłudze Microsoft Fabric

Zabezpieczenia na poziomie wiersza (RLS) w magazynie sieci szkieletowej i punkcie końcowym analizy SQL umożliwiają kontrolowanie dostępu do wierszy w tabeli bazy danych na podstawie ról użytkownika i predykatów. Aby uzyskać więcej informacji, zobacz Zabezpieczenia na poziomie wiersza w magazynowaniu danych sieci szkieletowej.

Ten przewodnik przeprowadzi Cię przez kroki implementowania zabezpieczeń na poziomie wiersza w usłudze Microsoft Fabric Warehouse lub punkcie końcowym analizy SQL.

Wymagania wstępne

Przed rozpoczęciem upewnij się, że masz następujące elementy:

  1. Obszar roboczy sieci szkieletowej z aktywną pojemnością lub pojemnością próbną.
  2. Punkt końcowy analizy usługi Fabric Warehouse lub SQL w usłudze Lakehouse.
  3. Uprawnienia Administracja istratora, członka lub współautora w obszarze roboczym albo uprawnienia z podwyższonym poziomem uprawnień w punkcie końcowym magazynu lub analizy SQL.

1. Połączenie

  1. Zaloguj się przy użyciu konta z podwyższonym poziomem uprawnień dostępu w punkcie końcowym magazynu lub analizy SQL. (Rola Administracja/Członek/Współautor w obszarze roboczym lub Uprawnienia sterowania w punkcie końcowym magazynu lub analizy SQL).
  2. Otwórz obszar roboczy Sieć szkieletowa i przejdź do punktu końcowego magazynu lub analizy SQL, w którym chcesz zastosować zabezpieczenia na poziomie wiersza.

2. Definiowanie zasad zabezpieczeń

  1. Określ role i predykaty, których chcesz użyć do kontrolowania dostępu do danych. Role definiują, kto może uzyskiwać dostęp do danych, a predykaty definiują kryteria dostępu.

  2. Tworzenie predykatów zabezpieczeń. Predykaty zabezpieczeń to warunki określające, do których wierszy użytkownik może uzyskać dostęp. Predykaty zabezpieczeń można tworzyć jako wbudowane funkcje tabel. W tym prostym ćwiczeniu przyjęto założenie, że w tabeli danych znajduje się kolumna zawierająca UserName_columnodpowiednią nazwę użytkownika wypełniona przez funkcję systemową 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. Zastąp YourSecurityPolicy ciąg nazwą zasad, tvf_securitypredicate nazwą funkcji predykatu, sampleschema nazwą schematu i sampletable nazwą tabeli docelowej.

  4. Zastąp UserName_column ciąg kolumną w tabeli, która zawiera nazwy użytkowników.

  5. Zastąp WHERE @UserName = USER_NAME(); element klauzulą zgodną WHERE z żądanym filtrem zabezpieczeń opartym na predykacie. Na przykład filtruje dane, w których kolumna UserName jest mapowana na @UserName parametr, odpowiada wynikowi funkcji systemowej USER_NAME().

  6. Powtórz te kroki, aby w razie potrzeby utworzyć zasady zabezpieczeń dla innych tabel.

3. Testowanie zabezpieczeń na poziomie wiersza

  1. Zaloguj się do sieci szkieletowej jako użytkownik będący członkiem roli ze skojarzonymi zasadami zabezpieczeń. Użyj następującego zapytania, aby zweryfikować wartość, która powinna być dopasowana w tabeli.

    SELECT USER_NAME() 
    
  2. Wykonaj zapytanie względem tabel bazy danych, aby sprawdzić, czy zabezpieczenia na poziomie wiersza działają zgodnie z oczekiwaniami. Użytkownicy powinni widzieć tylko dane, które spełniają predykat zabezpieczeń zdefiniowany w swojej roli. Na przykład:

    SELECT * FROM sampleschema.sampletable
    
  3. Podobne odfiltrowane wyniki dla użytkownika będą filtrowane z innymi aplikacjami, które używają uwierzytelniania Firmy Microsoft Entra na potrzeby dostępu do bazy danych.

4. Monitorowanie i utrzymywanie zabezpieczeń na poziomie wiersza

Regularnie monitoruj i aktualizuj zasady zabezpieczeń na poziomie wiersza w miarę rozwoju wymagań dotyczących zabezpieczeń. Śledź przypisania ról i upewnij się, że użytkownicy mają odpowiedni dostęp.