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ím Viewer. 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 přímo v Power BI. Zabezpečení na úrovni řádků lze také nakonfigurovat u sémantických modelů, které používají DirectQuery, například u SQL Serveru. 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 v Power BI Desktop nebo nakonfigurujte připojení DirectQuery.

    Poznámka:

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

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

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

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

    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. Výrazy, které byly vytvořeny, vrátí hodnotu "true" nebo "false".

    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 vracejí hodnotu "true" nebo "false". Například: [Entity ID] = “Value”. Editor DAX obsahuje automatické dokončování vzorců (intellisense). K ověření výrazu můžete použít zaškrtávací políčko nad polem výrazu. Tlačítko X nad polem výrazu můžete použít ke vrácení změn zpět.

    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. Ve službě Power BI a na Power BI Report Serveru je to 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.

    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 ve službě 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 obou směrech.

Správa zabezpečení v modelu

Pokud chcete spravovat zabezpečení na svém sémantickém modelu, otevřete pracovní prostor, do kterého jste uložili svůj sémantický model ve službě Fabric, a proveďte následující kroky:

  1. V prostředí Fabric 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 uživatelé s vyššími rolemi v pracovním prostoru uvidí zabezpečení a mohou přiřazovat uživatele k rolím.

Poznámka:

Zabezpečení můžete spravovat jenom u modelů, které už mají role zabezpečení na úrovni řádků definované v Power BI Desktopu nebo při úpravách datového modelu ve službě Power BI. Pokud váš model ještě nemá definované role, nemůžete ve službě Power BI spravovat zabezpečení.

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žby 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 možnosti

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 k testování pomocí volby 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 způsobu, jakým oprávnění interagují se zabezpečením na úrovni řádků (RLS), najdete v tématu Uživatelské prostředí RLS.

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í. Můžete testovat pouze sestavy, které se nacházejí ve stejném pracovním prostoru jako váš sémantický model.

Snímek obrazovky z náhledu 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 v rámci funkce Test jako role, včetně vizualizací Q&A, rychlých přehledů a Copilot.

Použití funkcí 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 rámci služby Power BI budou funkce username() a userprincipalname() obě vracet uživatelské jméno (UPN) uživatele. Vypadá to podobně jako e-mailová adresa.

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

Pokud publikujete sestavu Power BI Desktopu do pracovního prostoru ve službě Power BI, použijí se role RLS na členy, kteří jsou v pracovním prostoru přiřazeni k roli čtenář. I když diváci mají udělená oprávnění k sestavení sémantického modelu, zabezpečení na úrovni řádků stále platí. Pokud například uživatelé s oprávněními k sestavení používají Analyzovat v aplikaci Excel, jejich zobrazení dat je omezeno zabezpečením na úrovni řádků. Členové pracovního prostoru přiřazení jako Správce, Člen nebo Přispěvatel mají oprávnění k úpravám sémantického modelu, a proto se na ně nevztahuje zabezpečení na úrovni řádků (RLS). 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ů (RLS) 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.
  • Služební principály nelze přidat do role RLS. Zabezpečení na úrovni řádků (RLS) se proto nepoužije pro aplikace, které jako konečnou efektivní identitu používají služební principál.
  • 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 Testovat jako roli nebo Zobrazit jako roli nefunguje u modelů DirectQuery s povoleným jednotným přihlášením (SSO).
  • Funkce Testování 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é zprávy.

Mějte na paměti, že pokud sestava Power BI odkazuje na řádek s nakonfigurovaným RLS, se zobrazí stejná zpráva jako pro odstraněné nebo neexistující pole. Některým uživatelům to připadá, že je sestava nefunkční.

časté otázky

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 v rámci služby Power BI nakonfigurovat zabezpečení na úrovni řádků. RLS definujete v místním modelu Analysis Services.

Otázka: Můžu pomocí RLS omezit sloupce nebo míry přístupné svý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 RLS 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 RLS (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 RLS (zabezpečení na úrovni řádků) a vynutit pravidla zabezpečení pro uživatele, kteří se připojují do 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 k více rolím a role se sčítají. Pokud například uživatel patří do rolí Prodej i Marketing, uvidí data pro obě tyto role.

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