Cvičení 2: Power BI App a RLS
Cíle kapitoly
- Definovat RLS role ve web modelingu a otestovat je přes Test as role
- Přiřadit uživatele do role a ověřit, že RLS skutečně omezuje data — i to, kdy ji naopak obchází
- Publikovat Power BI App s Audiences a distribuovat přes ni různý obsah různým skupinám
- Vysvětlit rozdíl mezi RLS a Object-level security (OLS)
Úvod — vstupní stav
Navazuješ na cvičení 1: v GOC686-StudentXX máš semantic model GOC686-Starter, report Prodeje podle regionu - StudentXX a soused je nasdílený na report přímo (Share) a ve workspace je jako Viewer.
Krok 1 — Definice RLS rolí (web modeling)
- V GOC686-StudentXX klikni na … u semantic modelu
GOC686-Starter→ Open semantic model (editace modelu přímo v prohlížeči) → přepni z Viewing do Editing. - V liště klikni Manage roles → New.
- Pojmenuj roli
Severni Amerika, vyber tabulkuDimSalesTerritory, klikni Switch to DAX editor a zadej filtr:
[SalesTerritoryGroup] = "North America"- Klikni Save.
- Přidej druhou roli
Evropase stejným postupem (včetně Switch to DAX editor) a filtrem:
[SalesTerritoryGroup] = "Europe"- Klikni Save.
Krok 2 — Otestování role (Test as role)
- Ve workspace GOC686-StudentXX u semantic modelu
GOC686-Starterklikni … → Security, pak u role Severni Amerika klikni … → Test as role. - Otevře se výchozí report
GOC686-Starter(karta[Prodeje], graf po měsících) — ten tabulku regionů nemá. V hlavičce přes Viewing přepni na reportProdeje podle regionu - StudentXX. - Podívej se na tabulku regionů — North America má ukázat Northwest, Northeast, Central, Southwest, Southeast, Canada.
- Přepni přes Now viewing as na roli Evropa — má zůstat jen France, Germany, United Kingdom.
- Zpátky do normálního zobrazení se vrátíš přes Back to Row-Level Security (ne „Back to normal view" — ta volba v UI není).
SalesTerritoryGroup, ne součást North America. Pokud bys v roli Severni Amerika viděl i Austrálii, je chyba ve filtru role, ne v očekávání.GOC686-Starter ve službě neupravuj ani neukládej — automaticky by se převedl na formát PBIR a v cvičení 4 by ho deployment pipeline nenasadila (PBIR reporty tam podporované nejsou).Krok 3 — Přiřazení uživatele do role a kontrola RLS
- Vrať se do workspace → … u semantic modelu → Security.
- Klikni na roli Evropa.
- Do pole Add people zadej e-mail souseda → Add → Save.
- Soused (přes report nasdílený v cvičení 1) otevře report a ověří, co vidí.
- Odeber souseda z role Evropa a ulož. Soused zkusí report otevřít znovu.
- Vrať souseda zpátky do role Evropa.
Řešení pro kontrolu: Bez členství v žádné RLS roli uvidí soused chybu ve vizuálech, nebo prázdná data — podle typu vizuálu. V každém případě nedostane žádné řádky. Tohle je záměrné chování, ne bug: dokud uživatele nezařadíš do role, nemá k datům přístup, ne že by je viděl „vynulovaná".
Krok 4 — Odebrání souseda z workspace (kontrolní bod)
Než vytvoříš App, odeber souseda z Manage access tvého workspace úplně.
- Workspace settings → Manage access → najdi souseda → Remove.
Krok 5 — Vytvoření Power BI App s Audiences
- V GOC686-StudentXX klikni Create app (tlačítko vpravo nahoře).
- Setup: App name
Prodeje StudentXX. - Content: přidej oba reporty —
GOC686-StarteriProdeje podle regionu - StudentXX. - Audience: výchozí audience (typicky Audience 1) přejmenuj na Vedení a nech ji vidět oba reporty. Klikni + New audience, pojmenuj Obchod a u reportu
GOC686-Starterho skryj ikonou oka — audience Obchod tak uvidí jenProdeje podle regionu - StudentXX. - V audience Obchod klikni Manage audience access → přidej e-mail souseda.
- Klikni Publish app.
GOC686-StudentXX jde publikovat jen jedna klasická workspace app najednou — pokud ji později budeš upravovat, použiješ Update app, ne novou publikaci.GOC686-Starter jen přidáváš do Content — v editoru reportu ho neotvírej ani v něm nic neukládej. Uložením ve službě by se převedl na formát PBIR a v cvičení 4 by ho deployment pipeline nenasadila.Prodeje podle regionu - StudentXX z audience Obchod, a v něm díky RLS jen evropská data, protože je pořád členem role Evropa na modelu.Bonus: Org apps
Org apps jsou novější typ položky Fabric (preview, dostupnost závisí na tenant settingu Users can discover and create org apps (preview)), který na rozdíl od klasické workspace app umožňuje víc aplikací na jeden workspace. Tvrzení, že se změny projeví bez kroku Update app, přesný stav ověřte v dokumentaci.
- Ve workspace klikni + New item a vyhledej Org app.
- Porovnej se svou klasickou app: počet aplikací povolených na jeden workspace, způsob publikace změn, přímý přístup k jednotlivým položkám bez nutnosti procházet navigaci app.
Diskuze: RLS vs. Object-level security (OLS)
Řešení pro kontrolu: RLS omezuje, které řádky dat uživatel uvidí — tabulky a sloupce zůstávají viditelné, jen s odfiltrovanými daty. Pokud chceš skrýt celý objekt (např. sloupec s marží, kterou nemá vidět obchod), potřebuješ Object-level security (OLS). OLS se nastavuje přes TMDL view přímo v Power BI Desktopu nebo přes Tabular Editor / XMLA endpoint — ne ve webovém UI service. Nevýhoda OLS je stejná jako u RLS: platí jen pro roli Viewer, Admin/Member/Contributor ji obchází stejně jako RLS.
Shrnutí a reference
GOC686-Sdileny, který ti nastaví lektor.