Sdílet prostřednictvím


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ávce, č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. Pro živá připojení Analysis Services nebo Azure Analysis Services nakonfigurujete zabezpečení na úrovni řádků v modelu, 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. 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í:

  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 Nový a vytvořte novou roli.

    Snímek obrazovky s oknem Spravovat role a zvýrazněním tlačítka Vytvořit novou roli

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

    Snímek obrazovky s oknem Spravovat role a zvýrazněním přejmenování role

    Poznámka:

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

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

  6. 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 výchozím editorem okna Spravovat role pro definování 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é dnes lze 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.

  7. Volitelně vyberte Přepnout do editoru DAX a přepněte na použití editoru DAX a definujte svou roli. Výrazy jazyka DAX vrací hodnotu true nebo false. Například: [Entity ID] = “Value”. Editor DAX je dokončen s automatickým dokončováním vzorců (intellisense). Zaškrtnutím nad polem výrazu můžete ověřit výraz a tlačítko X nad polem výrazu a vrátit změny zpět.

    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). V tomto poli výrazu navíc používejte čárky k oddělení argumentů funkce DAX i v případě, že používáte národní prostředí, které obvykle používá oddělovače středníků, například francouzštinu nebo němčinu.

  8. 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é. 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 dialogovým oknem, které potvrzuje, že chcete přepnout do výchozího editoru

    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á oddělovače středníků, například francouzštinu nebo němčinu.

  9. 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 nastavením relace modelu pro použití filtru zabezpečení v obousměrch

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 prostředcích infrastruktury, a proveďte následující kroky:

  1. V prostředcích infrastruktury 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.

    Snímek obrazovky s nabídkou Další možnosti v navigační nabídce

  2. Vyberte Zabezpečení.

    Snímek obrazovky s nabídkou Další možnosti a 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.

Všimněte si, že skupiny Microsoft 365 nejsou podporované a není možné je 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í Test jako role

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ávce, člena nebo přispěvatele 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