Zabezpečení na úrovni tabulek, sloupců a řádků v OneLake

Bezpečnostní role OneLake určují, kdo má přístup k datům v položkách Fabric. Někdy je udělení nebo odepření přístupu k celé položce příliš hrubé. Možná budete muset skrýt citlivé sloupce, omezit, které řádky uživatel vidí, nebo zobrazit jen určité tabulky. V rámci role můžete přístup zpřesnit na třech úrovních granularity: zabezpečení na úrovni objektů pro tabulky a složky, zabezpečení na úrovni sloupců (CLS) pro jednotlivé sloupce a bezpečnost na úrovni řádku (RLS) pro jednotlivé řádky.

Tento článek vysvětluje, co každá kontrola dělá a jak ji OneLake vymáhá. Pro tvorbu těchto kontrol viz Vytvořit a spravovat bezpečnostní role OneLake.

Bezpečnostní role v OneLake používají model grantů k získání přístupu k datům. Nemůžete odepřít přístup, který je udělen jinou rolí nebo modelem oprávnění. Z tohoto důvodu tyto kontroly neomezují přístup uživatelů v rolích Admin, Člen a Přispěvatel na úrovni pracovního prostoru.

Zabezpečení tabulek a složek

Bezpečnost na úrovni tabulek a složek, také nazývaná zabezpečení na úrovni objektů (OLS), vám umožňuje udělit přístup ke konkrétním tabulkám nebo složkám v datové položce. S OLS vytváříte oprávnění jak pro strukturovaná, tak nestrukturovaná data na úrovni složek. Protože stoly Delta Parquet v OneLake jsou reprezentovány jako složky, můžete stoly zabezpečit stejným způsobem jako složky. Schémata jsou také složky, takže je můžete zajistit stejným způsobem.

Zabezpečení na úrovni sloupců a řádků

Zabezpečení OneLake zajišťuje zabezpečení na úrovni sloupců a řádků jedním ze dvou způsobů:

  • Filtrační tabulky: Uživatel, který dotazuje tabulku pomocí Fabric enginu, jako jsou Spark notebooky, nebo autorizovaného enginu třetí strany, vidí pouze sloupce nebo řádky, které pravidla CLS nebo RLS povolují.
  • Blokové tabulky: Uživatel, který dotazuje tabulku pomocí neautorizovaného třetího stranního enginu, nemůže tabulku přečíst.

Zabezpečení OneLake dokáže vynucovat pravidla CLS a RLS pro tabulky Delta Parquet nebo virtualizované tabulky Iceberg. Pravidla aplikovaná na jiné typy tabulek blokují přístup k celé tabulce pro členy role.

Pokud má CLS nebo RLS pravidlo nesoulad s tabulkou, ve které je definováno, dotaz selže a nevrátí žádná data. Například nesoulad nastává, když pravidlo odkazuje na sloupec, který v tabulce není.

Zabezpečení na úrovni sloupců

Zabezpečení na úrovni sloupců (CLS) umožňuje přístup k vybraným sloupcům v tabulce místo k celé tabulce. Data ve sloupcích, které odstraníte ze seznamu povolených, nejsou uživatelům viditelná.

Pro tabulky filtrované pomocí CLS platí následující chování:

  • Pokud uživatel spustí select * dotaz na tabulce, kde má přístup pouze k některým sloupcům, pravidla CLS se chovají odlišně v závislosti na enginu Fabric:
    • Poznámkové bloky Spark: Dotaz proběhne úspěšně a zobrazí pouze povolené sloupce.
    • SQL analytický endpoint: Dotaz vrací chybu a blokuje přístup ke sloupcům, ke kterým uživatel nemá přístup.
    • Sémantické modely: Dotaz vrací chybu a blokuje přístup ke sloupcům, ke kterým uživatel nemá přístup.
  • Název zabezpečeného sloupce může být v určitých zkušenostech viditelný, ale datové hodnoty se nikdy neobjeví.

Zabezpečení na úrovni řádků

Bezpečnost na úrovni řádků (RLS) definuje omezení dat na úrovni řádků pro tabulková data uložená v OneLake. Definujete role, které obsahují pravidla pro filtrování řádků dat pro členy role. Když člen RLS role dotazuje data, OneLake vyhodnotí pravidla RLS a vrátí pouze povolené řádky. Řádky jsou pojem relevantní pouze pro tabulková data, takže RLS nelze definovat pro složky mimo tabulky nebo nestrukturovaná data.

Pro tabulky filtrované pomocí RLS platí následující chování:

  • Přístup k tabulce může být blokovaný, pokud příkaz RLS obsahuje chyby syntaxe, které brání jeho vyhodnocení.

Pro syntaxi používanou pro zápis pravidel RLS viz Referenční příručka k syntaxi zabezpečení na úrovni řádků.

Kombinování zabezpečení na úrovni řádků a sloupců

Zabezpečení na úrovni řádků a sloupců lze použít společně k omezení přístupu uživatelů k tabulce. Tyto dvě zásady se ale musí použít pomocí jedné role zabezpečení OneLake. V tomto scénáři je přístup k datům omezený podle pravidel, která jsou nastavená v jedné roli.

Zabezpečení OneLake nepodporuje kombinaci dvou nebo více rolí, kde jedna obsahuje pravidla zabezpečení na úrovni řádků (RLS) a druhá obsahuje pravidla zabezpečení na úrovni sloupců (CLS). Uživatelům, kteří se pokoušejí získat přístup k tabulkám, které jsou součástí nepodporované kombinace rolí, se zobrazují chyby dotazu.