Sdílet prostřednictvím


Implementace zabezpečení na úrovni řádků v datových skladech Microsoft Fabric

Platí pro:✅ Koncový bod sql Analytics a sklad v Microsoft Fabric

Zabezpečení na úrovni řádků (RLS) ve službě Fabric Warehouse a koncovém bodu analýzy SQL umožňuje řídit přístup k řádkům v tabulce databáze na základě uživatelských rolí a predikátů. Další informace najdete v tématu Zabezpečení na úrovni řádků v datových skladech Fabric.

Tento průvodce vás provede postupem implementace zabezpečení na úrovni řádků v Microsoft Fabric Warehouse nebo koncovém bodu analýzy SQL.

Požadavky

Než začnete, ujistěte se, že máte následující:

  1. Pracovní prostor Fabric s aktivní kapacitou nebo zkušební kapacitou
  2. Koncový bod analýzy Fabric Warehouse nebo SQL v Lakehouse.
  3. Oprávnění správce, člena nebo přispěvatele v pracovním prostoru nebo zvýšená oprávnění ke koncovému bodu služby Warehouse nebo SQL Analytics.

1. Připojit

  1. Přihlaste se pomocí účtu se zvýšeným přístupem ke koncovému bodu Warehouse nebo SQL Analytics. (Role správce, člena nebo přispěvatele v pracovním prostoru nebo oprávnění řízení u koncového bodu služby Warehouse nebo SQL Analytics).
  2. Otevřete pracovní prostor Fabric a přejděte do koncového bodu Warehouse nebo SQL Analytics, kde chcete použít zabezpečení na úrovni řádků.

2. Definování zásad zabezpečení

  1. Určete role a predikáty, které chcete použít k řízení přístupu k datům. Role definují, kdo má přístup k datům, a predikáty definují kritéria pro přístup.

  2. Vytváření predikátů zabezpečení Predikáty zabezpečení jsou podmínky, které určují, ke kterým řádkům má uživatel přístup. Predikáty zabezpečení můžete vytvořit jako vložené funkce hodnotné tabulkou.

    -- 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()
    OR USER_NAME() = 'BatchProcess@contoso.com';
    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. Nahraďte YourSecurityPolicy názvem zásady názvem tvf_securitypredicate vaší predikátové funkce, sampleschema názvem schématu a sampletable názvem cílové tabulky.

  4. V tomto cvičení se předpokládá, že tabulka dat obsahuje sloupec, UserName_column, který obsahuje příslušné uživatelské jméno naplněné systémovou funkcí USER_NAME(). Nahraďte UserName_column sloupcem v tabulce, který obsahuje uživatelská jména.

  5. WHERE @UserName = USER_NAME(); Nahraďte WHERE klauzulí, která odpovídá požadovanému predikátovém filtru zabezpečení. Tím se například filtrují data, ve kterých UserName se sloupec mapuje na @UserName parametr, odpovídá výsledku systémové funkce USER_NAME().

    • Volitelně příkaz WHERE také obsahuje výjimku pro uživatelské jméno spravované identity, která zpracovává přesun dat, například BatchProcess@contoso.com.
  6. Opakujte tento postup a v případě potřeby vytvořte zásady zabezpečení pro ostatní tabulky.

3. Testování zabezpečení na úrovni řádků

  1. Přihlaste se k Fabric jako uživatel, který je členem role s přidruženými zásadami zabezpečení. Pomocí následujícího dotazu ověřte hodnotu, která by se měla shodovat v tabulce.

    SELECT USER_NAME() 
    
  2. Dotazem na databázové tabulky ověřte, že zabezpečení na úrovni řádků funguje podle očekávání. Uživatelé by měli vidět jenom data, která splňují predikát zabezpečení definovaný ve své roli. Příklad:

    SELECT * FROM sampleschema.sampletable
    
  3. Podobné filtrované výsledky pro uživatele budou filtrovány s jinými aplikacemi, které používají ověřování Microsoft Entra pro přístup k databázi. Další informace naleznete v tématu Ověřování Microsoft Entra jako alternativu k ověřování SQL v Microsoft Fabric.

4. Monitorování a údržba zabezpečení na úrovni řádků

Pravidelně monitorujte a aktualizujte zásady zabezpečení na úrovni řádků při vývoji požadavků na zabezpečení. Sledujte přiřazení rolí a zajistěte, aby uživatelé měli odpovídající přístup.