Bezpečnosť na úrovni stola, stĺpca a riadku v OneLake

Bezpečnostné úlohy OneLake kontrolujú, kto môže pristupovať k dátam vo vašich Fabric položkách. Niekedy je udelenie alebo zamietnutie prístupu k celému predmetu príliš hrubé. Možno budete musieť skryť citlivé stĺpce, obmedziť, ktoré riadky používateľ vidí, alebo sprístupniť len určité tabuľky. V rámci roly môžete prístup zpresniť na troch úrovniach detailnosti: bezpečnosť na úrovni objektov pre tabuľky a priečinky, bezpečnosť na úrovni stĺpcov (CLS) pre jednotlivé stĺpce a bezpečnosť na úrovni riadkov (RLS) pre jednotlivé riadky.

Tento článok vysvetľuje, čo každá kontrola robí a ako ju OneLake vynucuje. Na tvorbu týchto kontrol pozri Vytvoriť a spravovať bezpečnostné úlohy OneLake.

Bezpečnostné pozície v OneLake používajú model grantov na sprístupnenie dát. Nemôžete odmietnuť prístup, ktorý je udelený cez inú rolu alebo model oprávnení. Z tohto dôvodu tieto kontroly neobmedzujú prístup používateľov v rolách Admin, Člen a Prispievateľ na úrovni pracovného priestoru.

Zabezpečenie tabuliek a priečinkov

Bezpečnosť na úrovni tabuliek a priečinkov, nazývaná aj objektová bezpečnosť (OLS), vám umožňuje udeliť prístup ku konkrétnym tabuľkám alebo priečinkom v dátovom položku. S OLS vytvárate oprávnenia pre štruktúrované aj nestruktúrované dáta na úrovni priečinka. Keďže stoly Delta Parquet v OneLake sú reprezentované ako priečinky, môžete zabezpečiť stoly rovnakým spôsobom, ako zabezpečujete priečinky. Schémy sú tiež priečinky, takže ich môžete zabezpečiť rovnakým spôsobom.

Bezpečnosť na úrovni stĺpca a riadku

Bezpečnosť OneLake zabezpečuje bezpečnosť na úrovni stĺpca a riadku jedným z dvoch spôsobov:

  • Filtračné tabuľky: Používateľ, ktorý dotazuje tabuľku pomocou Fabric enginu, ako sú Spark notebooky, alebo autorizovaný engine tretej strany, vidí iba stĺpce alebo riadky, ktoré pravidlá CLS alebo RLS povoľujú.
  • Blokové tabuľky: Používateľ, ktorý sa dotazuje na tabuľku pomocou neautorizovaného tretieho enginu, tabuľku nedokáže prečítať.

Bezpečnosť OneLake môže vynucovať CLS a RLS pravidlá pre Delta Parquet stoly alebo virtualizované Iceberg tabuľky. Pravidlá aplikované na iné typy tabuliek blokujú prístup k celej tabuľke pre členov roly.

Ak má CLS alebo RLS pravidlo nesúlad s tabuľkou, na ktorej je definované, dotaz zlyhá a nevráti žiadne údaje. Napríklad nesúlad nastáva, keď pravidlo odkazuje na stĺpec, ktorý nie je v tabuľke.

Zabezpečenie na úrovni stĺpca

Bezpečnosť na úrovni stĺpca (CLS) umožňuje prístup k vybraným stĺpcom v tabuľke namiesto celej tabuľky. Údaje v stĺpcoch, ktoré odstránite zo zoznamu povolených, nie sú používateľom viditeľné.

Pre tabuľky filtrované pomocou CLS platia nasledujúce správania:

  • Ak používateľ vykoná select * dotaz v tabuľke, kde má prístup len k niektorým stĺpcom, pravidlá CLS sa správajú odlišne v závislosti od enginu Fabric:
    • Spark notebooky: Dotaz je úspešný a zobrazuje len povolené stĺpce.
    • Endpoint SQL analytiky: Dotaz vráti chybu a zablokuje prístup k stĺpcom, ku ktorým používateľ nemá prístup.
    • Sémantické modely: Dotaz vráti chybu a zablokuje prístup k stĺpcom, ku ktorým používateľ nemá prístup.
  • Názov zabezpečeného stĺpca môže byť viditeľný v určitých skúsenostiach, ale dátové hodnoty sa nikdy nezobrazia.

Zabezpečenie na úrovni riadkov

Bezpečnosť na úrovni riadkov (RLS) definuje dátové obmedzenia na úrovni riadkov pre tabuľkové údaje uložené v OneLake. Definujete roly, ktoré obsahujú pravidlá na filtrovanie riadkov dát pre členov roly. Keď člen RLS úlohy dotazuje na dáta, OneLake vyhodnotí RLS pravidlá a vráti len povolené riadky. Riadky sú pojem relevantný len pre tabuľkové dáta, takže RLS nemôžete definovať pre priečinky bez tabuliek alebo nestruktúrované dáta.

Pre tabuľky filtrované pomocou RLS platia nasledujúce správania:

  • Prístup k tabuľke môže byť zablokovaný, ak príkaz RLS obsahuje syntaktické chyby, ktoré mu bránia v vyhodnocovaní.

Pre syntax používanú na písanie RLS pravidiel pozri referenciu bezpečnostnej syntaxe na úrovni riadkov.

RLS úlohy nepodporujú dynamické a viactabuľkové dotazy.

Kombinovanie zabezpečenia na úrovni riadkov a stĺpcov

Zabezpečenie na úrovni riadkov a stĺpca môžete použiť spoločne na obmedzenie prístupu používateľa k tabuľke. Tieto dve politiky sa však musia použiť pomocou jednej roly zabezpečenia OneLake. V tomto scenári je prístup k údajom obmedzený podľa pravidiel, ktoré sú nastavené v jednej role.

Zabezpečenie OneLake nepodporuje kombináciu dvoch alebo viacerých rolí, v ktorých jedna obsahuje pravidlá zabezpečenia na úrovni riadkov, a druhá obsahuje pravidlá zabezpečenia na úrovni riadkov. Používateľom, ktorí sa pokúsia o prístup k tabuľkám, ktoré sú súčasťou kombinácie nepodporovanej roly, sa zobrazujú chyby dotazu.