Zabezpečení na úrovni řádků (RLS) na Serveru sestav Power BIRow-level security (RLS) in Power BI Report Server

Nastavení zabezpečení na úrovni řádků (RLS) pro Server sestav Power BI může omezit přístup k datům pro dané uživatele.Setting up row-level security (RLS) with Power BI Report Server can restrict data access for given users. Filtry omezují přístup k datům na úrovni řádků a můžete je definovat v rámci rolí.Filters restrict data access at the row level, and you can define filters within roles. Pokud na Serveru sestav Power BI používáte výchozí oprávnění, může členy do rolí pro sestavu přiřazovat každý uživatel s oprávněními Vydavatel nebo Správce obsahu pro danou sestavu Power BI.If you're using the default permissions in Power BI Report Server, any user with Publisher or Content Manager permissions for the Power BI report can assign members to roles for that report.

RLS nakonfigurujete pro sestavy importované do Power BI pomocí Power BI Desktopu.You configure RLS for reports imported into Power BI with Power BI Desktop. RLS můžete nakonfigurovat také u sestav, které používají DirectQuery, například u SQL Serveru.You can also configure RLS on reports that use DirectQuery, such as SQL Server. Mějte na paměti, že RLS se nebere v úvahu, když připojení DirectQuery používá integrované ověřování pro čtečky sestav.Keep in mind that RLS isn't respected if your DirectQuery connection uses integrated authentication for report readers. Pro živá připojení služby Analysis Services nakonfigurujete zabezpečení na úrovni řádků na místním modelu.For Analysis Services live connections, you configure row-level security on the on-premises model. U živě připojených datových sad se tato možnost zabezpečení nezobrazí.The security option doesn't show up for live connection datasets.

Definování rolí a pravidel v Power BI DesktopuDefine roles and rules in Power BI Desktop

V Power BI Desktopu můžete definovat role a pravidla.You can define roles and rules within Power BI Desktop. Při publikování do Power BI se publikují také definice rolí.When you publish to Power BI, it also publishes the role definitions.

Pokud chcete definovat role zabezpečení, postupujte podle těchto kroků.To define security roles, follow these steps.

  1. Naimportujte data do sestavy Power BI Desktopu nebo nakonfigurujte připojení DirectQuery.Import data into your Power BI Desktop report, or configure a DirectQuery connection.

    Poznámka

    V Power BI Desktopu není možné definovat role pro živá připojení služby Analysis Services.You can't define roles within Power BI Desktop for Analysis Services live connections. Je to potřeba udělat v rámci modelu služby Analysis Services.You need to do that within the Analysis Services model.

  2. Na kartě Modelování vyberte Spravovat role.From the Modeling tab, select Manage Roles.

    Výběr možnosti Spravovat role

  3. V okně Spravovat role vyberte Vytvořit.From the Manage roles window, select Create.

    Výběr možnosti Vytvořit

  4. V oblasti Role zadejte název role.Under Roles, provide a name for the role.

  5. V oblasti Tabulky vyberte tabulku, na kterou chcete uplatnit pravidlo jazyka DAX.Under Tables, select the table to which you want to apply a DAX rule.

  6. Do pole Výraz DAX filtru tabulky zadejte výrazy DAX.In the Table filter DAX expression box, enter the DAX expressions. Tento výraz vrací hodnotu true nebo false.This expression returns a value of true or false. Příklad: [Entity ID] = “Value”.For example: [Entity ID] = “Value”.

    Okno Spravovat role

    Poznámka

    Ve výrazu můžete použít username() .You can use username() within this expression. Nezapomeňte, že v Power BI Desktopu má username() formát DOMÉNA\uživatelské_jméno.Be aware that username() has the format of DOMAIN\username within Power BI Desktop. Ve službě Power BI a na Serveru sestav Power BI má formát hlavního názvu uživatele (UPN).Within the Power BI service and Power BI Report Server, it's in the format of the user's User Principal Name (UPN). Můžete také použít funkci userprincipalname() , která vždy vrátí uživatele ve formátu hlavního názvu uživatele, tj. uzivatelskejmeno@contoso.com.Alternatively, you can use userprincipalname(), which always returns the user in the format of their user principal name, username@contoso.com.

  7. Po vytvoření výrazu DAX můžete výběrem značky zaškrtnutí nad polem s výrazem tento výraz ověřit.After you've created the DAX expression, select the checkmark above the expression box to validate the expression.

    Ověření výrazu DAX

    Poznámka

    V tomto poli výrazu se k oddělení argumentů funkce DAX používají čárky, a to i když pracujete v národním prostředí, které obvykle jako oddělovače používá středníky (jako je francouzština nebo němčina).In this expression box, you use commas to separate DAX function arguments even if you're using a locale that normally uses semicolon separators (e.g. French or German).

  8. Vyberte Uložit.Select Save.

V Power BI Desktopu není možné přiřadit uživatele k roli.You can't assign users to a role within Power BI Desktop. Přiřadíte je ve službě Power BI.You assign them in the Power BI service. V Power BI Desktopu můžete povolit dynamické zabezpečení, když použijete funkce DAX uživatelské_jméno() nebo userprincipalname() a nakonfigurujete správné relace.You can enable dynamic security within Power BI Desktop by making use of the username() or userprincipalname() DAX functions and having the proper relationships configured.

Obousměrné křížové filtrováníBidirectional cross-filtering

Ve výchozím nastavení používá filtrování zabezpečení na úrovni řádků jednosměrné filtry, a to bez ohledu na to, jestli jsou relace nastavené na jeden směr nebo obousměrně.By default, row-level security filtering uses single-directional filters, regardless of whether the relationships are set to single direction or bidirectional. Můžete ručně povolit obousměrný křížový filtr se zabezpečením na úrovni řádků.You can manually enable bidirectional cross-filter with row-level security.

  • Vyberte relaci a zaškrtněte políčko Použít filtr zabezpečení v obou směrech.Select the relationship and check the Apply security filter in both directions checkbox.

    Použití filtru zabezpečení

Toto políčko zaškrtněte, pokud implementujete dynamické zabezpečení na úrovni řádků na základě uživatelského jména nebo přihlašovacího ID.Check this box when implementing dynamic row-level security based on user name or login ID.

Další informace najdete v technických dokumentech white paper Obousměrné křížové filtrování pomocí DirectQuery v Power BI Desktopu a Zabezpečení tabulkového sémantického modelu BI.To learn more, see Bidirectional cross-filtering using DirectQuery in Power BI Desktop and the Securing the Tabular BI Semantic Model technical whitepaper.

Ověření rolí v Power BI DesktopuValidate the roles within Power BI Desktop

Po vytvoření rolí otestujte výsledky v Power BI Desktopu.After you've created your roles, test the results of the roles within Power BI Desktop.

  1. Na kartě Modelování vyberte Zobrazit jako role.From the Modeling tab, select View as Roles.

    Výběr možnosti Zobrazit jako role

    Objeví se okno Zobrazit jako role, kde uvidíte role, které jste vytvořili.The View as roles window appears, where you see the roles you've created.

    Okno Zobrazit jako role

  2. Vyberte některou vytvořenou roli a pak výběrem tlačítka OK tuto roli použijte.Select a role you created, and then select OK to apply that role.

    Sestava zobrazí data, která odpovídají dané roli.The report renders the data relevant for that role.

  3. Můžete také vybrat Jiný uživatel a zadat uživatele.You can also select Other user and supply a given user.

    Výběr možnosti Jiný uživatel

    Doporučujeme zadat hlavní název uživatele (UPN), protože ho používají služba Power BI a Server sestav Power BI.It's best to supply the User Principal Name (UPN) as that's what the Power BI service and Power BI Report Server use.

    Možnost Jiný uživatel zobrazí v Power BI Desktopu jiné výsledky jen v případě, že používáte dynamické zabezpečení založené na výrazech DAX.Within Power BI Desktop, Other user displays different results only if you're using dynamic security based on your DAX expressions.

  4. Vyberte OK.Select OK.

    Sestava se vykreslí podle toho, co může zobrazit daný uživatel.The report renders based on what that user can see.

Přidání členů do rolíAdd members to roles

Po uložení sestavy na Server sestav Power BI spravujete zabezpečení a přidáváte nebo odebíráte členy na serveru.After you save your report in Power BI Report Server, you manage security and add or remove members on the server. Možnost zabezpečení na úrovni řádků je dostupná jenom pro uživatele s oprávněními Vydavatel nebo Správce obsahu pro danou sestavu (ostatním se tato možnost zobrazuje šedě).Only users with either Publisher or Content Manager permissions for the report have the row-level security option available and not greyed out.

Pokud sestava nemá role, které se vyžadují, je nutné ji otevřít v Power BI Desktopu, přidat nebo změnit role a pak ji uložit zpět na Server sestav Power BI.If the report doesn't have the roles it needs, you need to open it in Power BI Desktop, add or modify roles, then save it back to Power BI Report Server.

  1. V Power BI Desktopu uložte sestavu na Server sestav Power BI.In Power BI Desktop, save the report to Power BI Report Server. Musíte používat verzi Power BI Desktopu, která je optimalizovaná pro Server sestav Power BI.You need to use the version of Power BI Desktop optimized for Power BI Report Server.

  2. Na Serveru sestav Power BI vyberte tři tečky ( ) vedle sestavy.In Power BI Report Service, select the ellipsis () next to the report.

  3. Vyberte Spravovat > Zabezpečení na úrovni řádků.Select Manage > Row-level security.

    Správa zabezpečení na úrovni řádků

    Na stránce Zabezpečení na úrovni řádků přidejte členy do role, kterou jste vytvořili v Power BI Desktopu.On the Row-level security page, you add members to a role you created in Power BI Desktop.

  4. Když chcete přidat člena, vyberte Přidat člena.To add a member, select Add Member.

  5. Zadejte do textového pole uživatele nebo skupinu ve formátu funkce Username (DOMÉNA\uživatel) a vyberte role, které jim chcete přiřadit.Enter the user or group in the text box in the Username format (DOMAIN\user) and select the roles you wish to assign to them. Tento člen se musí nacházet ve vaší organizaci.The member has to be within your organization.

    Přidání člena do role

    V závislosti na tom, jak je služba Active Directory nakonfigurovaná, je zde možné zadat také hlavní název uživatele.Depending on how you have Active Directory configured, entering the User Principal Name here also works. V tom případě Server sestav uvádí v seznamu příslušné uživatelské jméno.In that case, the Report Server shows the corresponding username in the list.

  6. Kliknutím na OK akci potvrďte.Click OK to apply.

  7. Pokud chcete odebrat členy, zaškrtněte políčko vedle jejich jmen a vyberte Odstranit.To remove members, check the box next to their names and select Delete. Je možné odstranit více členů najednou.You can delete multiple members at a time.

    Odstranění členů

Funkce username() a userprincipalname()username() and userprincipalname()

Funkce jazyka DAX username() a userprincipalname() můžete používat v datové sadě.You can take advantage of the DAX functions username() or userprincipalname() within your dataset. Můžete je používat ve výrazech v Power BI Desktopu.You can use them within expressions in Power BI Desktop. Server sestav Power BI je používá při publikování modelu.When you publish your model, Power BI Report Server uses them.

V Power BI Desktopu funkce username() vrací uživatele ve formátu DOMÉNA\Uživatel a funkce userprincipalname() vrací uživatele ve formátu user@contoso.com.Within Power BI Desktop, username() returns a user in the format of DOMAIN\User and userprincipalname() returns a user in the format of user@contoso.com.

Na Serveru sestav Power BI funkce username() i funkce userprincipalname() vrací hlavní název uživatele (UPN), který se podobá e-mailové adrese.Within Power BI Report Server, username() and userprincipalname() both return the user's User Principal Name (UPN), which is similar to an email address.

Pokud na Serveru sestav Power BI používáte vlastní ověřování, vrací se formát uživatelského jména, který jste pro uživatele nastavili.If you're using custom authentication in Power BI Report Server, it returns the username format you’ve set up for users.

OmezeníLimitations

Toto jsou aktuální omezení pro zabezpečení na úrovni řádku v modelech Power BI.Here are the current limitations for row-level security on Power BI models.

Uživatelé, jejichž sestavy používají funkci jazyka DAX username(), si teď všimnou nového chování, při kterém se vrací hlavní název uživatele (UPN), s výjimkou situace, kdy se používá DirectQuery s integrovaným zabezpečením.Users that had reports using the username() DAX function will notice new behavior now where the User Principal Name (UPN) is returned EXCEPT when using DirectQuery with integrated security. V tomto scénáři se RLS nebere v úvahu, a proto se chování nezmění.Since RLS isn't respected in that scenario, the behavior in that scenario is unchanged.

RLS můžete definovat jenom u datových sad vytvořených v Power BI Desktopu.You can define RLS only on datasets created with Power BI Desktop. Pokud chcete povolit RLS pro datové sady vytvořené v Excelu, musíte nejprve převést svoje soubory na soubory Power BI Desktopu (PBIX).To enable RLS for datasets created with Excel, you must convert your files into Power BI Desktop (PBIX) files first. Další informace o převodu excelových souborů.Learn more about converting Excel files.

Podporují se pouze extrakce, transformace a načítání (ETL) a připojení DirectQuery, která používají uložené přihlašovací údaje.Only Extract, Transform, Load (ETL) and DirectQuery connections using stored credentials are supported. Živá připojení ke službě Analysis Services a připojení DirectQuery, která používají integrované ověřování, se zpracovávají v podkladovém zdroji dat.Live connections to Analysis Services and DirectQuery connections using integrated authentication are handled in the underlying data source.

Pokud při použití DirectQuery používáte integrované zabezpečení, můžou si uživatelé všimnout tohoto chování:If you're using integrated security with DirectQuery, then your users may notice:

  • RLS je zakázané a všechna data se vrací.RLS is disabled and all data is returned.
  • Uživatelé nemůžou svoje přiřazení rolí aktualizovat a na stránce pro správu RLS se jim zobrazuje chyba.Users can't update their role assignments, and get an error on the RLS Manage page.
  • Funkce jazyka DAX username dál vrací uživatelské jméno ve formátu DOMÉNA\UŽIVATEL.For the DAX username function, you continue to receive the username as DOMAIN\USER.

Autoři sestav mají na Serveru sestav Power BI přístup k zobrazení dat sestavy až poté, co po nahrání sestavy náležitým způsobem přiřadí role sami sobě.Report authors don't have access to view the report data in Power BI Report Server until they've assigned themselves roles accordingly after uploading the report.

Časté otázkyFAQ

Můžu tyto role vytvořit pro datové zdroje služby Analysis Services?Can I create these roles for Analysis Services data sources?

Můžete, pokud jste naimportovali data do Power BI Desktopu.You can if you imported the data into Power BI Desktop. Pokud používáte živé připojení, nebudete moct nakonfigurovat RLS ve službě Power BI.If you're using a live connection, you can't configure RLS within the Power BI service. RLS se definuje v místním modelu služby Analysis Services.RLS is defined within the Analysis Services model on-premises.

Můžu použít RLS k omezení dostupnosti sloupců nebo měr pro uživatele?Can I use RLS to limit the columns or measures accessible by my users?

No.No. Pokud má uživatel přístup ke konkrétnímu řádku dat, uvidí všechny sloupce dat na příslušném řádku.If a user has access to a particular row of data, they can see all the columns of data for that row.

Můžu s pomocí RLS skrýt podrobná data, ale poskytnout přístup k datům shrnutým ve vizuálech?Does RLS let me hide detailed data but give access to data summarized in visuals?

Ne, zabezpečit můžete jednotlivé řádky dat, ale uživatelé budou moct vždy vidět podrobnosti nebo souhrnná data.No, you secure individual rows of data but users can always see either the details or the summarized data.

Můžu přidat nové role v Power BI Desktopu, když už mám stávající role a členy přiřazené?Can I add new roles in Power BI Desktop if I already have existing roles and members assigned?

Ano, pokud už máte na Serveru sestav Power BI stávající role definované a členy přiřazené, můžete vytvořit další role a znovu publikovat sestavu, a to bez vlivu na aktuální přiřazení.Yes, if you already have existing roles defined and members assigned in Power BI Report Server, you can make additional roles and republish your report with no effect on your current assignments.

Další krokyNext steps

Co je Power BI Report Server? Příručka pro správceWhat is Power BI Report Server? Administrator handbook

Máte další otázky?More questions? Zkuste se zeptat v komunitě Power BI.Try asking the Power BI Community