Zabezpečení na úrovni řádků s využitím Power BI

Zabezpečení na úrovni řádků (RLS) v Power BI se dá použít k omezení přístupu k datům pro dané uživatele. Filtry omezují přístup k datům na úrovni řádku a můžete definovat filtry v rámci rolí. V služba Power BI mají uživatelé s přístupem k pracovnímu prostoru přístup k sémantickým modelům v daném pracovním prostoru. Zabezpečení na úrovni řádků omezuje přístup k datům pouze pro uživatele s oprávněními prohlížeče . Nevztahuje se na Správa, členy ani přispěvatele.

Zabezpečení na úrovni řádků můžete nakonfigurovat pro datové modely importované do Power BI pomocí Power BI. Zabezpečení na úrovni řádků můžete nakonfigurovat také u sémantických modelů, které používají DirectQuery, jako je SQL Server. V případě připojení Analysis Services nebo Azure Analysis Services se v modelu konfiguruje zabezpečení na úrovni řádků, ne v Power BI. U sémantických modelů živého připojení se možnost zabezpečení nezobrazuje.

Definování rolí a pravidel v Power BI Desktopu

V Power BI Desktopu můžete definovat role a pravidla. Při publikování do Power BI publikujete také definice rolí.

Definování rolí zabezpečení:

  1. Importujte data do sestavy Power BI Desktopu nebo nakonfigurujte připojení DirectQuery.

    Poznámka:

    V Power BI Desktopu nemůžete definovat role pro živá připojení analysis services. Musíte to udělat v rámci modelu Analysis Services.

  2. Na kartě Modelování vyberte Spravovat role.

    Snímek obrazovky s kartou Modelování se zvýrazněnou možností Spravovat role

  3. V okně Spravovat role vyberte Vytvořit.

    Snímek obrazovky s oknem Spravovat role se zvýrazněnou možností Vytvořit

  4. V části Role zadejte název role.

    Poznámka:

    Roli nemůžete definovat čárkou, například London,ParisRole.

  5. V části Tabulky vyberte tabulku, na kterou chcete použít pravidlo DAX (Data Analysis Expression).

  6. Do pole výrazu DAX filtru tabulky zadejte výrazy DAX. Tento výraz vrátí hodnotu true nebo false. Například: [Entity ID] = “Value”.

    Snímek obrazovky s oknem Spravovat role a zvýrazněním ukázkového výrazu DAX

    Poznámka:

    V tomto výrazu můžete použít uživatelské jméno(). Mějte na paměti, že uživatelské_jméno() má formát DOMAIN\username v Power BI Desktopu. V služba Power BI a Server sestav Power BI je ve formátu hlavního názvu uživatele (UPN). Alternativně můžete použít userprincipalname(), který vždy vrací uživatele ve formátu hlavního názvu uživatele, username@contoso.com.

  7. Po vytvoření výrazu DAX zaškrtněte políčko nad polem výrazu a ověřte výraz.

    Snímek obrazovky s oknem výrazu DAX filtru tabulky a zvýrazněním značky zaškrtnutí

    Poznámka:

    V tomto poli výrazu oddělte argumenty funkce DAX čárkami, i když používáte národní prostředí, které obvykle používá středníky (např. francouzštinu nebo němčinu).

  8. Zvolte Uložit.

V Power BI Desktopu nemůžete přiřadit uživatele k roli. Přiřadíte je v služba Power BI. Dynamické zabezpečení v Power BI Desktopu můžete povolit tak, že použijete funkce DAX username() nebo userprincipalname() a nakonfigurujete správné relace.

Ve výchozím nastavení používá filtrování zabezpečení na úrovni řádků jednosměrné filtry bez ohledu na to, jestli jsou relace nastaveny na jeden směr nebo obousměrný. Obousměrné křížové filtrování s zabezpečením na úrovni řádků můžete povolit ručně tak, že vyberete relaci a zaškrtnete políčko Použít filtr zabezpečení v obou směrech . Všimněte si, že pokud se tabulka účastní více obousměrných relací, můžete tuto možnost vybrat pouze pro jednu z těchto relací. Tuto možnost vyberte, pokud jste na úrovni serveru také implementovali dynamické zabezpečení na úrovni řádků, kde zabezpečení na úrovni řádků vychází z uživatelského jména nebo přihlašovacího ID.

Další informace najdete v tématu Obousměrné křížové filtrování pomocí DirectQuery v Power BI a technického článku Zabezpečení tabulkového sémantického modelu BI.

Snímek obrazovky s použitým filtrem zabezpečení

Definování rolí a pravidel v Power BI pomocí rozšířeného editoru zabezpečení na úrovni řádků (Preview)

Pomocí vylepšeného editoru zabezpečení na úrovni řádků můžete v Power BI rychle a snadno definovat role a filtry zabezpečení na úrovni řádků. V tomto editoru můžete přepínat mezi výchozím rozevíracím rozhraním a rozhraním DAX. Při publikování do Power BI publikujete také definice rolí.

Definování rolí zabezpečení pomocí vylepšeného editoru zabezpečení na úrovni řádků:

  1. V Power BI Desktopu povolte náhled tak, že přejdete na Možnosti souborů > a Nastavení > Možnosti > ve verzi Preview a zapnete Editor rozšířeného zabezpečení na úrovni řádků. Případně můžete tento editor použít ve službě úpravou datového modelu v služba Power BI.

  2. Importujte data do sémantického modelu Power BI nebo nakonfigurujte připojení DirectQuery.

  3. Na pásu karet vyberte Spravovat role.

    Snímek obrazovky s tlačítkem Spravovat role na pásu karet Plocha

  4. V okně Spravovat role vyberte Nový a vytvořte novou roli.

    Snímek obrazovky s vytvořením nové role v rozšířeném editoru zabezpečení na úrovni řádků

  5. V části Role zadejte název role a vyberte Enter.

    Snímek obrazovky s přejmenováním role v rozšířeném editoru zabezpečení na úrovni řádků

  6. V části Vybrat tabulky vyberte tabulku, u které chcete použít filtr zabezpečení na úrovni řádků.

  7. V části Filtrovat data definujte role pomocí výchozího editoru. Vytvořené výrazy vrátí hodnotu true nebo false.

    Snímek obrazovky s příkladem použití výchozího editoru v rozšířeném editoru zabezpečení na úrovni řádků

    Poznámka:

    Ne všechny filtry zabezpečení na úrovni řádků podporované v Power BI je možné definovat pomocí výchozího editoru. Omezení zahrnují výrazy, které lze dnes definovat pouze pomocí jazyka DAX, včetně dynamických pravidel, jako jsou username() nebo userprincipalname(). Pokud chcete definovat role pomocí těchto filtrů, použijte editor DAX.

  8. Volitelně můžete vybrat Přepnout do editoru DAX a přepnout tak, aby se k definování vaší role používal editor DAX. Výběrem možnosti Přepnout do výchozího editoru můžete přepnout zpět do výchozího editoru. Všechny změny provedené v obou rozhraních editoru se zachovají při přepínání rozhraní, pokud je to možné.

    Snímek obrazovky s příkladem použití editoru dax v rozšířeném editoru zabezpečení na úrovni řádků

    Při definování role pomocí editoru DAX, který nelze definovat ve výchozím editoru, pokud se pokusíte přepnout na výchozí editor, zobrazí se výzva s upozorněním, že přepínání editorů může způsobit ztrátu některých informací. Chcete-li tyto informace zachovat, vyberte Zrušit a pokračujte pouze v úpravách této role v editoru DAX.

    Snímek obrazovky s ukázkovým dialogem s chybou při přechodu z DAX na výchozí editor v rozšířeném editoru zabezpečení na úrovni řádků

  9. Zvolte Uložit.

Ověření rolí v Power BI Desktopu

Po vytvoření rolí otestujte výsledky rolí v Power BI Desktopu.

  1. Na kartě Modelování vyberte Zobrazit jako.

    Snímek obrazovky s kartou Modelování a zvýrazněním Zobrazení jako

    Zobrazí se okno Zobrazit jako role , ve kterém vidíte role, které jste vytvořili.

    Snímek obrazovky s oknem Zobrazit jako role a vybranou možností Žádné

  2. Vyberte roli, kterou jste vytvořili. Potom zvolte OK , aby se tato role použila.

    Sestava vykreslí data relevantní pro danou roli.

  3. Můžete také vybrat jiného uživatele a zadat daného uživatele.

    Snímek obrazovky s oknem Zobrazit jako role a zadaným ukázkovým uživatelem

    Nejlepší je zadat hlavní název uživatele (UPN), protože to je to, co služba Power BI a Server sestav Power BI použít.

    V Power BI Desktopu zobrazí jiný uživatel jiné výsledky jenom v případě, že používáte dynamické zabezpečení na základě výrazů DAX. V takovém případě musíte zahrnout uživatelské jméno i roli.

  4. Vyberte OK.

    Sestava se vykreslí na základě toho, co filtry zabezpečení na úrovni řádků umožňují uživateli zobrazit.

    Poznámka:

    Funkce Zobrazit jako role nefunguje u modelů DirectQuery s povoleným jednotným přihlašováním (SSO).

Správa zabezpečení v modelu

Pokud chcete spravovat zabezpečení v sémantickém modelu, otevřete pracovní prostor, do kterého jste uložili sémantický model v služba Power BI, a proveďte následující kroky:

  1. V služba Power BI vyberte nabídku Další možnosti pro sémantický model. Tato nabídka se zobrazí, když najedete myší na název sémantického modelu, ať už ji vyberete v navigační nabídce nebo na stránce pracovního prostoru.

    Snímek obrazovky s nabídkou dalších možností v pracovním prostoru

    Snímek obrazovky s nabídkou dalších možností v navigační nabídce

  2. Vyberte Zabezpečení.

    Snímek obrazovky zobrazující nabídku další možnosti s vybranou možností Zabezpečení

Zabezpečení vás přenese na stránku Zabezpečení na úrovni role, kde přidáte členy do role, kterou jste vytvořili. Přispěvatel (a vyšší role pracovního prostoru) uvidí zabezpečení a může přiřadit uživatele k roli.

Práce se členy

Přidat členy

V služba Power BI můžete do role přidat člena zadáním e-mailové adresy nebo jména uživatele nebo skupiny zabezpečení. Skupiny vytvořené v Power BI se nedají přidat. Do vaší organizace můžete přidat externí členy.

K nastavení zabezpečení na úrovni řádků můžete použít následující skupiny.

Mějte ale na paměti, že skupiny Microsoft 365 nejsou podporované a nedají se přidat do žádné role.

Snímek obrazovky znázorňující, jak přidat člena

Můžete také zjistit, kolik členů je součástí role, podle čísla v závorkách vedle názvu role nebo vedle členů.

Snímek obrazovky zobrazující členy v roli

Odebrání členů

Členy můžete odebrat výběrem symbolu X vedle jejich jména.

Snímek obrazovky znázorňující, jak odebrat člena

Ověření role v rámci služba Power BI

Můžete ověřit, že role, kterou jste definovali, funguje správně v služba Power BI tím, že roli otestujete.

  1. Vyberte Další možnosti (...) vedle role.
  2. Vyberte Test jako roli.

Snímek obrazovky s možností testovat jako roli

Pokud existuje, budete přesměrováni na sestavu publikovanou z Power BI Desktopu s tímto sémantickým modelem. Řídicí panely nejsou k dispozici pro testování pomocí možnosti Test jako role .

V záhlaví stránky se zobrazí použitá role. Otestujte jiné role, kombinaci rolí nebo konkrétní osobu výběrem možnosti Nyní zobrazit jako. Tady vidíte důležité podrobnosti o oprávněních týkajících se testovaného jednotlivce nebo role. Další informace o interakci oprávnění se zabezpečením na úrovni řádků najdete v tématu Uživatelské prostředí zabezpečení na úrovni řádků.

Snímek obrazovky s zobrazením rozevíracího seznamu pro konkrétní osobu

Otestujte další sestavy připojené k sémantickému modelu tak , že v záhlaví stránky vyberete Zobrazení . Sestavy umístěné ve stejném pracovním prostoru jako sémantický model můžete testovat pouze.

Snímek obrazovky zobrazení pro výběr jiné sestavy k otestování

Pokud se chcete vrátit k normálnímu zobrazení, vyberte Zpět na zabezpečení na úrovni řádků.

Poznámka:

Funkce Test jako role nefunguje u modelů DirectQuery s povoleným jednotným přihlašováním (SSO). Kromě toho není možné ověřit všechny aspekty sestavy ve funkci test jako role, včetně vizualizací Q&A, rychlých přehledů a Copilot.

Použití funkce DAX username() nebo userprincipalname()

Můžete využít výhod funkcí DAX username() nebo userprincipalname() v rámci datové sady. Můžete je použít ve výrazech v Power BI Desktopu. Když model publikujete, použije se v rámci služba Power BI.

V Power BI Desktopu vrátí uživatelské jméno() uživatele ve formátu DOMAIN\User a userprincipalname() vrátí uživatele ve formátu user@contoso.com.

V služba Power BI vrátí uživatelské jméno (UPN) a userprincipalname(). Vypadá to podobně jako e-mailová adresa.

Použití zabezpečení na úrovni řádků s pracovními prostory v Power BI

Pokud publikujete sestavu Power BI Desktopu do pracovního prostoru v služba Power BI, použijí se role RLS na členy, kteří jsou v pracovním prostoru přiřazeni k roli Čtenář. I když mají čtenáři udělená oprávnění k sestavení sémantickému modelu, zabezpečení na úrovni řádků stále platí. Pokud například čtenáři s oprávněními k sestavení používají funkci Analyzovat v aplikaci Excel, omezí jejich zobrazení dat zabezpečení na úrovni řádků. Členové pracovního prostoru přiřazení Správa, členovi nebo přispěvateli mají oprávnění k úpravám sémantického modelu, a proto se na ně zabezpečení na úrovni řádků nevztahuje. Pokud chcete, aby zabezpečení na úrovni řádků platilo pro lidi v pracovním prostoru, můžete jim přiřadit jenom roli čtenáře. Přečtěte si další informace o rolích v pracovních prostorech.

Úvahy a omezení

Aktuální omezení zabezpečení na úrovni řádků v cloudových modelech najdete tady:

  • Pokud jste dříve definovali role a pravidla v služba Power BI, musíte je v Power BI Desktopu znovu vytvořit.
  • Zabezpečení na úrovni řádků můžete definovat jenom u sémantických modelů vytvořených v Power BI Desktopu. Pokud chcete povolit zabezpečení na úrovni řádků pro sémantické modely vytvořené v Excelu, musíte nejprve převést soubory na soubory Power BI Desktopu (PBIX). Další informace.
  • Instanční objekty nelze přidat do role RLS. Zabezpečení na úrovni řádků se proto nepoužije pro aplikace, které jako konečnou efektivní identitu používají instanční objekt.
  • Podporují se jenom připojení Import a DirectQuery. Živá připojení ke službě Analysis Services se zpracovávají v místním modelu.
  • Funkce Test jako role nebo Zobrazení jako role nefunguje u modelů DirectQuery s povoleným jednotným přihlašováním (SSO).
  • Funkce Test jako role nebo zobrazení jako role zobrazuje pouze sestavy z pracovního prostoru sémantických modelů.
  • Funkce Test jako role nebo Zobrazení jako role nefunguje pro stránkované sestavy.

Mějte na paměti, že pokud sestava Power BI odkazuje na řádek s nakonfigurovaným zabezpečením na úrovni řádků, zobrazí se stejná zpráva jako pro odstraněné nebo neexistující pole. Pro tyto uživatele to vypadá, že je sestava poškozená.

Často kladené dotazy

Otázka: Co když jsem v služba Power BI vytvořil(a) dříve vytvořené role a pravidla pro datovou sadu? Pořád pracují, když nic neudělám?
Odpověď: Ne, vizuály se nevykreslují správně. Musíte znovu vytvořit role a pravidla v Power BI Desktopu a pak je publikovat do služba Power BI.

Otázka: Můžu pro zdroje dat Analysis Services vytvořit tyto role?
Odpověď: Ano, pokud jste data naimportovali do Power BI Desktopu. Pokud používáte živé připojení, nemůžete nakonfigurovat zabezpečení na úrovni řádků v rámci služba Power BI. RLS definujete v místním modelu Analysis Services.

Otázka: Můžu pomocí zabezpečení na úrovni řádků omezit sloupce nebo míry přístupné mými uživateli?
Odpověď: Ne, pokud má uživatel přístup k určitému řádku dat, může zobrazit všechny sloupce dat pro daný řádek. Pokud chcete omezit přístup ke sloupcům a metadatům sloupců, zvažte použití zabezpečení na úrovni objektů.

Otázka: Umožňuje zabezpečení na úrovni řádků skrýt podrobná data, ale udělit přístup k datům souhrnným ve vizuálech?
Odpověď: Ne, zabezpečíte jednotlivé řádky dat, ale uživatelé můžou vždy zobrazit podrobnosti nebo souhrnná data.

Otázka: Zdroj dat už má definované role zabezpečení (například role SQL Serveru nebo role SAP BW). Jaký je vztah mezi těmito rolemi a zabezpečením na úrovni řádků?
Odpověď: Odpověď závisí na tom, jestli importujete data nebo používáte DirectQuery. Pokud importujete data do datové sady Power BI, role zabezpečení ve zdroji dat se nepoužívají. V takovém případě byste měli definovat zabezpečení na úrovni řádků a vynutit pravidla zabezpečení pro uživatele, kteří se připojují v Power BI. Pokud používáte DirectQuery, použijí se role zabezpečení ve zdroji dat. Když uživatel otevře sestavu, Power BI odešle dotaz do podkladového zdroje dat, který použije pravidla zabezpečení na data na základě přihlašovacích údajů uživatele.

Otázka: Může uživatel patřit do více než jedné role?
Odpověď: Uživatel může patřit do více rolí a role jsou sčítá. Pokud například uživatel patří do rolí Prodej i Marketing, uvidí data pro obě tyto role.

Otázky? Zkuste se zeptat Komunita Power BI návrhy? Přispívání nápadů ke zlepšení Power BI