Nedávno jsme řešili poměrně zajímavou věc ohledně RLS v Power BI. Pokusím se vysvětlit na jednoduchém příkladu o co šlo.
Dejme tomu, že mám tabulku s tuctem řádků a dva primitivní vizuály:
Nadefinuju si dvě role, EvenNumbersRole, která vidí jen sudá čísla:
a OddNumbersRole, která vidí jen lichá:
Otestuju, nasadím, přiřadím uživatele do rolí a pohoda. Funguje. Podrobnosti jsou v dokumentaci, ty tu nechci rozebírat.
Otázka je, jak se má report chovat pro uživatele, který v žádné z rolí přiřazený není. V dokumentaci se o tom nijak vzlášť nerozpovídali (nenašel jsem vůbec nic). Podle různých diskuzí by uživatel neměl vidět žádná data. Což si představuju nějak takto:
Když ale app.powerbi.com testuju, jak takový uživatel report uvidí, vypadá to malinko jinak:
A o dost méně se mi to líbí. Když se jako takový uživatel přihlásím, tak je to ještě o něco horší (může to ale být tím, že zdroj je v mém případě tabulka zadaná přes „Enter data“):
Ponaučení asi bude, že je vždy dobré, aby uživatel, který má přístup k reportu, vždy alespoň v jedné z rolí byl (přesně jak říká pan nandukrishnavs zde).
Řešil bych to přes nějakou skupinu s defaultním chováním (která nevrací žádné řádky nebo naopak všechny, podle toho co chcete docílit):
Abyste nemuseli její členy udržovat ručně, lze využít nějakou skupinu Everybody (snad každý něco takového má). Jako člen RLS role může být přidána Distribution Group, Mail-enabled Group nebo Security Group.
Práva se totiž „sčítají“, pokud jsem v „NoNumbers“ i v „EvenNumbersRole“, uvidím v reportu sudá čísla.
Jak jste na tom vy? Už jste něco podobného řešili? Přišli jste na něco elegantnějšího?
I work for Joyful Craftsmen as a Data Engineer. I like Microsoft technologies (SQL Server, .NET), Azure and lot of other. I also like automating things (and DevOps generally).