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í:
- Pracovní prostor Fabric s aktivní kapacitou nebo zkušební kapacitou
- Koncový bod analýzy Fabric Warehouse nebo SQL v Lakehouse.
- 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
- 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).
- 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í
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.
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
Nahraďte
YourSecurityPolicy
názvem zásady názvemtvf_securitypredicate
vaší predikátové funkce,sampleschema
názvem schématu asampletable
názvem cílové tabulky.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ďteUserName_column
sloupcem v tabulce, který obsahuje uživatelská jména.WHERE @UserName = USER_NAME();
NahraďteWHERE
klauzulí, která odpovídá požadovanému predikátovém filtru zabezpečení. Tím se například filtrují data, ve kterýchUserName
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říkladBatchProcess@contoso.com
.
- Volitelně příkaz
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ů
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()
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
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.