Jak zabezpečit lakehouse pro týmy Skladování Dat

Úvod

V tomto článku poskytujeme přehled konfigurace zabezpečení pro lakehouse v Prostředcích infrastruktury pro použití s uživateli SQL s dotazy T-SQL. Tito uživatelé můžou být obchodní analytici, kteří využívají data prostřednictvím SQL, tvůrci sestav nebo datových inženýrů vytvářejících nové tabulky a zobrazení.

Funkce zabezpečení

Microsoft Fabric používá vícevrstvý model zabezpečení s různými ovládacími prvky dostupnými na různých úrovních, aby poskytoval pouze minimální potřebná oprávnění. Další informace o různých funkcích zabezpečení dostupných v Prostředcích infrastruktury najdete v tématu Model řízení přístupu k datům ve OneLake.

V úloze Synapse Data Warehouse umožňují položky koncového bodu skladu a analýzy SQL také definovat nativní zabezpečení SQL. Zabezpečení SQL používá úplnou knihovnu konstruktorů zabezpečení T-SQL, aby umožňovala podrobné řízení přístupu k tabulkám, zobrazením, řádkům a sloupcům v rámci položky. Další informace o zabezpečení SQL najdete v tématu Podrobná oprávnění SQL.

Oprávnění SQL nakonfigurovaná ve skladu nebo koncovém bodu sql Analytics se vztahují pouze na dotazy, které se spouštějí na koncovém bodu služby Warehouse nebo SQL Analytics. Podkladová data se nacházejí v OneLake, ale přístup k datům OneLake se řídí samostatně prostřednictvím rolí přístupu k datům OneLake. Pokud chcete zajistit, aby uživatelé s konkrétními oprávněními SQL neviděli data, ke kterým nemají přístup SQL, nezahrnujte je do role přístupu k datům OneLake.

Zabezpečení podle případu použití

Zabezpečení v Microsoft Fabric je optimalizované z hlediska zabezpečení dat pro konkrétní případy použití. Případ použití je sada uživatelů, kteří potřebují konkrétní přístup a přístup k datům prostřednictvím daného modulu. V případě scénářů SQL existují některé běžné případy použití:

  • Zapisovače SQL: Uživatelé, kteří potřebují vytvářet nové tabulky, zobrazit nebo zapisovat data do existujících tabulek.
  • Čtenáři SQL: Uživatelé, kteří potřebují číst data pomocí dotazů SQL. K připojení SQL může přistupovat přímo nebo prostřednictvím jiné služby, jako je Power BI.

Každý případ použití pak můžeme sladit s potřebnými oprávněními v prostředcích infrastruktury.

Přístup k zápisu SQL

Uživateli se dá udělit přístup k zápisu do skladu nebo koncového bodu SQL Analytics dvěma způsoby:

  • Prostřednictvím rolí pracovního prostoru Infrastruktury můžete udělit členství třem rolím pracovního prostoru, které udělují oprávnění k zápisu. Každá role se automaticky přeloží na odpovídající roli v SQL, která uděluje ekvivalentní přístup k zápisu.
  • Udělte modulu SQL přístup pro čtení a udělte vlastní oprávnění SQL k zápisu do některých nebo všech dat.

Pokud uživatel potřebuje přístup k zápisu ke všem skladům nebo koncovým bodům SQL Analytics v pracovním prostoru, přiřaďte je k roli pracovního prostoru. Pokud uživatel nepotřebuje přiřadit jiné uživatele k rolím pracovního prostoru, měla by se použít role Přispěvatel.

Pokud uživatel potřebuje zapisovat jenom do konkrétních skladů nebo analýzy SQL, udělte mu přímý přístup prostřednictvím oprávnění SQL.

Přístup ke čtení SQL

Uživateli se dá udělit přístup pro čtení ke skladu nebo koncovému bodu SQL Analytics dvěma způsoby:

  • Udělte přístup pro čtení prostřednictvím oprávnění ReadData uděleného jako součást rolí pracovního prostoru Fabric. Všechny čtyři role pracovního prostoru udělí oprávnění ReadData.
  • Udělte modulu SQL přístup pro čtení a udělte vlastní oprávnění SQL ke čtení některých nebo všech dat.

Pokud je uživatel členem role pracovního prostoru Fabric, udělí mu oprávnění ReadData. Oprávnění ReadData mapuje uživatele na roli SQL, která uděluje oprávnění SELECT pro všechny tabulky ve skladu nebo u jezerahouse. Toto oprávnění je užitečné, pokud uživatel potřebuje zobrazit všechna nebo většinu dat v jezeře nebo skladu. Všechna oprávnění SQL DENY nastavená u konkrétního jezera nebo skladu stále platí a omezují přístup k tabulkám. Zabezpečení na úrovni řádků a sloupců je navíc možné nastavit u tabulek, aby se omezil přístup na podrobné úrovni.

Pokud uživatel potřebuje přístup jenom ke konkrétnímu jezeru nebo skladu, funkce sdílené složky poskytuje přístup pouze ke sdílené položce. Během sdílení se uživatelé můžou rozhodnout, že udělí oprávnění jen ke čtení nebo ke čtení + ReadData. Udělení oprávnění ke čtení umožňuje uživateli připojit se ke koncovému bodu skladu nebo analýzy SQL, ale neposkytuje přístup k tabulce. Udělení oprávnění ReadData uživatelům poskytuje úplný přístup pro čtení ke všem tabulkám v datovém skladu nebo koncovém bodu sql Analytics. V obou případech je možné nakonfigurovat další zabezpečení SQL tak, aby uděloval nebo odepře přístup ke konkrétním tabulkám. Toto zabezpečení SQL může zahrnovat podrobné řízení přístupu, například zabezpečení na úrovni řádků nebo sloupců.

Použití s klávesovými zkratkami

Klávesové zkratky jsou funkce OneLake, která umožňuje odkazovat na data z jednoho umístění bez fyzického kopírování dat. Klávesové zkratky jsou výkonný nástroj, který umožňuje snadné opakované použití dat z jednoho jezera v jiných umístěních bez nutnosti vytvářet duplicitní kopie dat.

Sklady v prostředcích infrastruktury nepodporují klávesové zkratky. Existuje však zvláštní chování, jak koncový bod analýzy SQL pro lakehouse komunikuje se zástupci.

Při dotazování prostřednictvím koncového bodu SQL Analytics se ke všem zástupcům v lakehouse přistupuje v delegovaném režimu. Delegovaná identita je uživatel infrastruktury, který vlastní lakehouse. Ve výchozím nastavení je vlastníkem uživatel, který vytvořil koncový bod lakehouse a SQL Analytics. Vlastník může být změněn ve vybraných případech a aktuální vlastník se zobrazí ve sloupci Vlastník v prostředcích infrastruktury při prohlížení položky v seznamu položek pracovního prostoru. Delegované chování znamená, že dotazující se uživatel může číst z klávesových tabulek, pokud má vlastník přístup k podkladovým datům, nikoli z uživatele, který dotaz spouští. Dotazující se uživatel potřebuje přístup jenom k výběru z místní tabulky.

Poznámka:

UserA je například vlastníkem jezera a UživatelB spouští dotaz na tabulku, která je zástupcem. UserB musí mít nejprve v tabulce přístup pro čtení, ať už prostřednictvím oprávnění ReadData nebo PROSTŘEDNICTVÍM SQL. Aby se zobrazila data, dotaz pak zkontroluje, jestli má userA přístup ke zkratce. Pokud má userA přístup, UserB zobrazí výsledky dotazu. Pokud userA nemá přístup, dotaz selže.

U lakehouses, které používají funkci přístupu k datům OneLake, je přístup ke zástupce určený tím, jestli má vlastník koncového bodu analýzy SQL přístup k cílovému jezeru a čte tabulku prostřednictvím role přístupu k datům OneLake.

U objektů lakehouse, které ještě nepoužívají funkci role přístupu k datům OneLake, je přístup zástupce určen tím, jestli má vlastník koncového bodu analýzy SQL oprávnění Ke čtení a čtení v cílové cestě.