Omezení přístupu k datům modelu Power BI

Dokončeno

Jako modelátor dat nastavíte zabezpečení na úrovni řádků vytvořením jedné nebo více rolí. Role má v modelu jedinečný název a obvykle obsahuje jedno nebo více pravidel. Pravidla vynucují filtry u tabulek modelů pomocí výrazů filtru DAX (Data Analysis Expressions).

Poznámka:

Ve výchozím nastavení datový model nemá žádné role. Datový model bez rolí znamená, že uživatelé (kteří mají oprávnění dotazovat se na datový model) mají přístup ke všem datům modelu.

Tip

Roli, která neobsahuje žádná pravidla, je možné definovat. V tomto případě role poskytuje přístup ke všem řádkům všech tabulek modelu. Tato role by byla vhodná pro uživatele s oprávněním správce zobrazit všechna data.

V Power BI Desktopu můžete vytvářet, ověřovat a spravovat role. Pro modely Azure Analysis Services nebo Služba Analysis Services serveru SQL můžete vytvářet, ověřovat a spravovat role pomocí nástrojů SQL Server Data Tools (SSDT).

Role můžete vytvářet a spravovat také pomocí aplikace SQL Server Management Studio (SSMS) nebo pomocí nástroje jiného výrobce, jako je tabulkový editor.

Abyste lépe pochopili, jak zabezpečení na úrovni řádků omezuje přístup k datům, podívejte se na následující animovaný obrázek.

Animated diagram demonstrates how row-level security works for two users who each have access to specific country data.

Použití principů návrhu hvězdicového schématu

Doporučujeme použít principy návrhu hvězdicového schématu k vytvoření modelu, který obsahuje tabulky dimenzí a faktů. Power BI je běžné nastavit tak, aby vynucuje pravidla, která filtrují tabulky dimenzí, což umožňuje efektivní šíření těchto filtrů do tabulek faktů.

Následující obrázek je diagram modelu datového modelu analýzy prodeje společnosti Adventure Works. Zobrazuje návrh hvězdicového schématu, který obsahuje jednu tabulku faktů s názvem Sales(Prodej). Ostatní tabulky jsou tabulky dimenzí, které podporují analýzu měr prodeje podle data, prodejního území, zákazníka, prodejce, objednávky, produktu a prodejce. Všimněte si relací modelu, které propojují všechny tabulky. Tyto relace šíří filtry (přímo nebo nepřímo) do tabulky Sales .

Screenshot shows a Power B I Desktop model diagram comprising the tables and relationships as described in the previous paragraph.

Tento návrh modelu podporuje příklady uvedené v této lekci.

Definování pravidel

Výrazy pravidel se vyhodnocují v kontextu řádku. Kontext řádku znamená, že výraz se vyhodnocuje pro každý řádek pomocí hodnot sloupců daného řádku. Když výraz vrátí hodnotu PRAVDA, uživatel může řádek zobrazit.

Tip

Další informace o kontextu řádků najdete v modulu Přidání počítaných tabulek a sloupců do modelů Power BI Desktopu. I když tento modul popisuje přidávání výpočtů modelu, obsahuje jednotku, která zavádí a popisuje kontext řádku.

Můžete definovat pravidla, která jsou statická nebo dynamická.

Statická pravidla

Statická pravidla používají výrazy DAX, které odkazují na konstanty.

Zvažte následující pravidlo použité v tabulce Region , které omezuje přístup k datům na prodej v midwestu.


'Region'[Region] = "Midwest"

Následující kroky vysvětlují, jak Power BI vynucuje pravidlo. Je to:

  1. Filtruje tabulku Oblast, což vede k jednomu viditelnému řádku (pro midwest).

  2. Pomocí relace modelu rozšíří filtr tabulky Region do tabulky State ( výsledkem je 14 viditelných řádků (oblast Midwest obsahuje 14 států).

  3. Použije relaci modelu k rozšíření filtru tabulky State do tabulky Sales , což vede k tisícům viditelných řádků (fakta o prodeji států, které patří do oblasti Midwest).

Nejjednodušší statické pravidlo, které můžete vytvořit, omezuje přístup ke všem řádkům tabulky. Zvažte následující pravidlo použité v tabulce Sales Details (není znázorněno v diagramu modelu).


FALSE()

Toto pravidlo zajišťuje, že uživatelé nebudou mít přístup k žádným datům tabulky. Může být užitečné, když prodejci mohou zobrazit agregované výsledky prodeje (z tabulky Prodej ), ale ne podrobnosti na úrovni objednávky.

Definování statických pravidel je jednoduché a efektivní. Zvažte jejich použití v případě, že potřebujete vytvořit jenom několik z nich, protože se může jednat o případ společnosti Adventure Works, kde je jen šest oblastí USA. Mějte ale na paměti nevýhody: Nastavení statických pravidel může znamenat značné úsilí při vytváření a nastavování. Při onboardingu nových oblastí by také bylo potřeba datovou sadu aktualizovat a znovu publikovat.

Pokud je nastavení mnoha pravidel a očekáváte, že do budoucna přidáte nová pravidla, zvažte vytvoření dynamických pravidel.

Dynamická pravidla

Dynamická pravidla používají specifické funkce JAZYKA DAX, které vracejí hodnoty prostředí (na rozdíl od konstant). Hodnoty prostředí se vrací ze tří specifických funkcí JAZYKA DAX:

  • USERNAME nebo USERPRINCIPALNAME – Vrátí ověřeného uživatele Power BI jako textovou hodnotu.

  • CUSTOMDATA – Vrátí vlastnost CustomData předanou v připojovací řetězec. Nástroje pro vytváření sestav mimo Power BI, které se připojují k datové sadě pomocí připojovací řetězec mohou nastavit tuto vlastnost, jako je Microsoft Excel.

Poznámka:

Mějte na paměti, že funkce USERNAME vrací uživatele ve formátu DOMAIN\username při použití v Power BI Desktopu. Při použití v služba Power BI však vrátí formát hlavního názvu uživatele (UPN), například username@adventureworks.com. Alternativně můžete použít funkci USERPRINCIPALNAME, která vždy vrací uživatele ve formátu hlavního názvu uživatele.

Zvažte upravený návrh modelu, který teď obsahuje (skrytou) tabulku AppUser . Každý řádek tabulky AppUser popisuje uživatelské jméno a oblast. Relace modelu s tabulkou Oblast šíří filtry z tabulky AppUser .

Image shows a revised model diagram that now includes the AppUser table. This table has two columns: Region and User Name.

Následující pravidlo použité v tabulce AppUser omezuje přístup k datům v oblastech ověřeného uživatele.


'AppUser'[UserName] = USERPRINCIPALNAME()

Definování dynamických pravidel je jednoduché a efektivní, když tabulka modelu ukládá hodnoty uživatelského jména. Umožňují vynutit návrh zabezpečení na úrovni řádků řízený daty. Pokud jsou například prodejci přidáni nebo odebráni z tabulky AppUser (nebo jsou přiřazeni k různým oblastem), tento přístup návrhu prostě funguje.

Ověření rolí

Při vytváření rolí je důležité je otestovat, aby se zajistilo, že použijí správné filtry. U datových modelů vytvořených v Power BI Desktopu je funkce View jako funkce, která umožňuje zobrazit sestavu při vynucení různých rolí a předání různých hodnot uživatelského jména.

Screenshot shows the Power B I Desktop Modeling ribbon. The “View as” command is highlighted.

Nastavení mapování rolí

Mapování rolí musí být nastaveno předem uživatelům, kteří přistupují k obsahu Power BI. Mapování rolí zahrnuje přiřazení objektů zabezpečení Microsoft Entra k rolím. Objekty zabezpečení můžou být uživatelské účty nebo skupiny zabezpečení.

Tip

Pokud je to možné, je vhodné mapovat role na skupiny zabezpečení. Tímto způsobem bude k dispozici méně mapování a správu členství ve skupinách můžete delegovat správcům sítě.

U vývojových modelů Power BI Desktopu se mapování rolí obvykle provádí v služba Power BI. U modelů Azure Analysis Services nebo Služba Analysis Services serveru SQL se mapování rolí obvykle provádí v SSMS.

Další informace o nastavení zabezpečení na úrovni řádků najdete tady:

Použití jednotného přihlašování (SSO) pro zdroje DirectQuery

Pokud datový model obsahuje tabulky DirectQuery a jejich zdroj dat podporuje jednotné přihlašování, může zdroj dat vynutit oprávnění k datům. Databáze tak vynucuje zabezpečení zdrojů dat vynucování zabezpečení na úrovni řádků a datových sad a sestav Power BI.

Vezměte v úvahu, že Adventure Works má azure SQL Database pro své prodejní operace, které se nacházejí ve stejném tenantovi jako Power BI. Databáze vynucuje zabezpečení na úrovni řádků k řízení přístupu k řádkům v různých databázových tabulkách. Můžete vytvořit model DirectQuery, který se připojí k této databázi bez rolí, a publikovat ho do služba Power BI. Když v služba Power BI nastavíte přihlašovací údaje ke zdroji dat, povolíte jednotné přihlašování. Když uživatelé sestav otevřou sestavy Power BI, Power BI předá jejich identitu zdroji dat. Zdroj dat pak vynucuje zabezpečení na úrovni řádků na základě identity příjemce sestavy.

Screenshot shows the data source credentials window with the S O option enabled.

Informace o zabezpečení na úrovni řádků služby Azure SQL Database najdete v tématu Zabezpečení na úrovni řádků.

Poznámka:

Počítané tabulky a počítané sloupce, které odkazují na tabulku DirectQuery ze zdroje dat s ověřováním jednotného přihlašování, se v služba Power BI nepodporují.

Další informace o zdrojích dat, které podporují jednotné přihlašování, najdete v tématu Jednotné přihlašování (SSO) pro zdroje DirectQuery.