Zabezpečení na úrovni řádků (RLS) v Power BIRow-level security (RLS) with Power BI

Zabezpečení na úrovni řádků v Power BI umožňuje určitým uživatelům zamezit přístup k datům.Row-level security (RLS) with Power BI can be used to 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. Mějte na paměti, že ve službě Power BI mají členové pracovního prostoru přístup k datovým sadám v daném pracovním prostoru.Be aware that in the Power BI service, members of a workspace have access to datasets in the workspace. Zabezpečení na úrovni řádků neomezuje tento přístup k datům.RLS doesn't restrict this data access.

Zabezpečení na úrovni řádků můžete nakonfigurovat pro datové modely importované do Power BI pomocí Power BI Desktopu.You can configure RLS for data models imported into Power BI with Power BI Desktop. Zabezpečení na úrovni řádků můžete nakonfigurovat také u datových sad, které používají DirectQuery, například u SQL Serveru.You can also configure RLS on datasets that are using DirectQuery, such as SQL Server. Dříve jste mohli implementovat pouze zabezpečení na úrovni řádků v rámci místních modelů služby Analysis Services mimo Power BI.Previously, you were only able to implement RLS within on-premises Analysis Services models outside of Power BI. Pro živá připojení Analysis Services nebo Azure Analysis Services nakonfigurujete zabezpečení na úrovni řádků v modelu, nikoli v Power BI Desktopu.For Analysis Services or Azure Analysis Services live connections, you configure Row-level security in the model, not in Power BI Desktop. Možnost zabezpečení se u živého připojení datových sad nezobrazí.The security option will not 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.

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 bi-directional. Obousměrný křížový filtr se zabezpečením na úrovni řádků můžete povolit ručně, když vyberete relaci a zaškrtnete políčko Použít filtr zabezpečení v obou směrech.You can manually enable bi-directional cross-filter with row-level security by selecting the relationship and checking the Apply security filter in both directions checkbox. Toto políčko byste měli zaškrtnout, když jste na úrovni serveru také implementovali dynamické zabezpečení na úrovni řádků, kdy zabezpečení na úrovni řádků je založené na uživatelském jménu nebo přihlašovacím ID.You should check this box when your've also implemented dynamic row-level security at the server level, where row-level security is based on user name or login ID.

Další informace najdete v technickém článku Obousměrné křížové filtrování pomocí DirectQuery v Power BI Desktopu a Zabezpečení tabulkového sémantického modelu BI.For more information, see Bidirectional cross-filtering using DirectQuery in Power BI Desktop and the Securing the Tabular BI Semantic Model technical article.

Použití filtru zabezpečení

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.

Správa zabezpečení na datovém modeluManage security on your model

Pokud chcete spravovat zabezpečení na datovém modelu, postupujte následovně.To manage security on your data model, you will want to do the following.

  1. Vyberte u datové sady tři tečky (...) .Select the ellipse (…) for a dataset.

  2. Vyberte Zabezpečení.Select Security.

    Použít filtr zabezpečení v obou směrech

Tím přejdete na stránku zabezpečení na úrovni řádků, kde můžete přiřazovat členy k rolím, které jste vytvořili v Power BI Desktopu.This will take you to the RLS page for you to add members to a role you created in Power BI Desktop. Možnost Zabezpečení uvidí pouze vlastníci datové sady.Only the owners of the dataset will see Security available. Pokud je datová sada ve skupině, možnost Zabezpečení uvidí pouze správci této skupiny.If the dataset is in a Group, only Administrators of the group will see the security option.

V Power BI Desktopu můžete role pouze vytvářet nebo upravovat.You can only create or modify roles within Power BI Desktop.

Práce s členyWorking with members

Přidání členůAdd members

Člena můžete k roli přiřadit zadáním e-mailové adresy nebo jména uživatele či zadáním e-mailové adresy nebo názvu požadované skupiny zabezpečení nebo distribučního seznamu.You can add a member to the role by typing in the email address, or name, of the user, security group or distribution list you want to add. Skupiny vytvořené v Power BI přidávat nemůžete.You cannot add Groups created within Power BI. Můžete přidat členy, kteří jsou vůči vaší organizaci externí.You can add members external to your organization.

Přidání člena

Podle čísla v závorce vedle názvu role nebo vedle části Členové můžete také zjistit, kolik členů k dané roli patří.You can also see how many members are part of the role by the number in parenthesis next to the role name, or next to Members.

Členové v roli

Odebrání členůRemove members

Členy můžete odebrat výběrem symbolu X vedle jejich jména.You can remove members by selecting the X next to their name.

Odebrání člena

Ověření role ve službě Power BIValidating the role within the Power BI service

Správnou funkčnost definované role si můžete ověřit jejím vyzkoušením.You can validate that the role you defined is working correctly by testing the role.

  1. Vyberte vedle této role Další možnosti (...).Select More options (...) next to the role.
  2. Vyberte možnost Testovat data v roli.Select Test data as role

Testovat v roli

Zobrazí se sestavy, které jsou pro tuto roli dostupné.You will then see reports that are available for this role. Řídicí panely součástí tohoto zobrazení nejsou.Dashboards are not presented in this view. Na modrém panelu výše uvidíte, jaká role se právě používá.In the blue bar above, you will see what is being applied.

Právě prohlížíte jako

Výběrem možnosti Právě prohlížíte jako můžete vyzkoušet jiné role nebo jejich kombinaci.You can test other roles, or combination of roles, by selecting Now viewing as.

Testování dalších rolí

Když chcete ověřit funkčnost rolí, můžete si data zobrazit jako konkrétní osoba nebo můžete vybrat kombinaci dostupných rolí.You can choose to view data as a specific person, or you can select a combination of available roles to validate they are working.

Pokud se chcete vrátit do normálního zobrazení, vyberte možnost Zpět k zabezpečení na úrovni řádků.To return to normal viewing, select Back to Row-Level Security.

Použití funkcí jazyka DAX username() a userprincipalname()Using the username() or userprincipalname() DAX function

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. Když váš model publikujete, použije se ve službě Power BI.When you publish your model, it will be used within the Power BI service.

V Power BI Desktopu vrací funkce username() 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() will return a user in the format of DOMAIN\User and userprincipalname() will return a user in the format of user@contoso.com.

Ve službě Power BI vracejí funkce username() i userprincipalname() hlavní název uživatele (UPN).Within the Power BI service, username() and userprincipalname() will both return the user's User Principal Name (UPN). Ten vypadá podobně jako e-mailová adresa.This looks similar to an email address.

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

Pokud publikujete sestavu Power BI Desktopu do pracovního prostoru v rámci služby Power BI, role se použijí pro členy s oprávněním jen pro čtení.If you publish your Power BI Desktop report to a workspace within the Power BI service, the roles will be applied to read-only members. V nastavení pracovního prostoru budete muset označit, že chcete, aby členové mohli obsah Power BI pouze zobrazit.You will need to indicate that members can only view Power BI content within the workspace settings.

Upozornění

Pokud jste pracovní prostor nakonfigurovali tak, aby uživatelé měli oprávnění upravovat, zabezpečení na úrovni řádků na ně platit nebude.If you have configured the workspace so that members have edit permissions, the RLS roles will not be applied to them. Uživatelé uvidí všechna data.Users will be able to see all of the data.

Nastavení skupiny

OmezeníLimitations

Zabezpečení na úrovni řádků má u cloudových modelů následující aktuální omezení:The current limitations for row-level security on cloud models are as follows:

  • Pokud jste ve službě Power BI definovali role a pravidla, musíte je v Power BI Desktopu vytvořit znovu.If you previously defined roles and rules in the Power BI service, you must re-create them in Power BI Desktop.

  • Zabezpečení na úrovni řádků (RLS) můžete definovat jenom u datových sad vytvořených v Power BI Desktopu.You can define RLS only on the datasets created with Power BI Desktop. Pokud chcete povolit zabezpečení na úrovni řádků (RLS) pro datové sady vytvořené v Excelu, musíte soubory napřed převést na Power BI Desktop (PBIX).If you want to enable RLS for datasets created with Excel, you must convert your files into Power BI Desktop (PBIX) files first. Další informaceLearn more.

  • Podporovaná připojení jsou jenom Import a DirectQuery.Only Import and DirectQuery connections are supported. Živá připojení ke službě Analysis Services zpracovává místní model.Live connections to Analysis Services are handled in the on-premises model.

Známé problémyKnown issues

Víme o problému, kdy se při pokusu o publikování dříve publikované sestavy z Power BI Desktopu zobrazí chybová zpráva.There's a known issue where you'll get an error message if you try to publish a previously published report from Power BI Desktop. Scénář je následující:The scenario is as follows:

  1. Anna má datovou sadu, která je publikovaná ve službě Power BI a má nakonfigurované zabezpečení na úrovni řádků (RLS).Anna has a dataset that is published to the Power BI service and has configured RLS.

  2. Ana aktualizuje sestavu v Power BI Desktopu a znovu ji publikuje.Anna updates the report in Power BI Desktop and republishes.

  3. Anně se zobrazí zpráva.Anna receives an error.

Alternativní řešení: Dokud nebude tento problém vyřešen, je potřeba soubor Power BI Desktopu znovu publikovat ve službě Power BI.Workaround: Republish the Power BI Desktop file from the Power BI service until this issue is resolved. Můžete to udělat tak, že vyberete Získat data > Soubory.You can do that by selecting Get Data > Files.

Časté otázkyFAQ

Otázka: Co když jsou role a pravidla datové sady vytvořena ve službě Power BI někdy dříve?Question: What if I had previously created roles and rules for a dataset in the Power BI service? Budou dál fungovat i když nic neudělám?Will they still work if I do nothing?
Odpověď: Nebudou. Vizuály se nevykreslí správně.Answer: No, visuals will not render properly. Budete je muset vytvořit znovu v Power BI Desktopu a pak je znovu publikovat ve službě Power BI.You will have to re-create the roles and rules within Power BI Desktop and then publish to the Power BI service.

Otázka: Můžu tyto role vytvořit pro datové zdroje služby Analysis Services?Question: Can I create these roles for Analysis Services data sources?
Odpověď: Můžete, pokud jste naimportovali data do Power BI Desktopu.Answer: You can if you imported the data into Power BI Desktop. Pokud používáte živé připojení, nebudete moct nakonfigurovat zabezpečení na úrovni řádků (RLS) ve službě Power BI.If you are using a live connection, you will not be able to configure RLS within the Power BI service. Definuje se v místním modelu služby Analysis Services.This is defined within the Analysis Services model on-premises.

Otázka: Můžu použít RLS k omezení dostupnosti sloupců nebo měr pro uživatele?Question: Can I use RLS to limit the columns or measures accessible by my users?
Odpověď: Ne, pokud má uživatel přístup k určitému řádku dat, uvidí všechny sloupce dat daného řádku.Answer: No, if a user has access to a particular row of data, they can see all the columns of data for that row.

Otázka: Můžu s pomocí RLS skrýt podrobná data, ale poskytnout přístup k datům shrnutým ve vizuálech?Question: Does RLS let me hide detailed data but give access to data summarized in visuals?
Odpověď: Ne, zabezpečit můžete jednotlivé řádky dat, ale uživatelé budou moct vždy vidět podrobnosti nebo souhrnná data.Answer: No, you secure individual rows of data but users can always see either the details or the summarized data.

Otázka: Můj zdroj dat už má definované role zabezpečení (například role SQL Serveru nebo role SAP BW).Question: My data source already has security roles defined (for example SQL Server roles or SAP BW roles). Jaký je vztah mezi těmito rolemi a RLS?What is the relationship between these and RLS?
Odpověď: Odpověď závisí na tom, zda importujete data nebo používáte DirectQuery.Answer: The answer depends on whether you're importing data or using DirectQuery. Pokud importujete data do datové sady Power BI, role zabezpečení ve zdroji dat se nepoužívají.If you're importing data into your Power BI dataset, the security roles in your data source aren't used. V tomto případě musíte definovat RLS a vynutit pravidla zabezpečení pro uživatele, kteří se připojují v Power BI.In this case, you should define RLS to enforce security rules for users who connect in Power BI. V DirectQuery se role zabezpečení ve zdroji dat používají.If you're using DirectQuery, the security roles in your data source are used. Když uživatel otevře sestavu, Power BI pošle dotaz na podkladový zdroj dat, který použije pravidla zabezpečení u dat na základě přihlašovacích údajů uživatele.When a user opens a report Power BI sends a query to the underlying data source, which applies security rules to the data based on the user's credentials.

Další krokyNext steps

Další informace související s tímto článkem najdete v následujících tématech:For more information related to this article, check out the following resources: