Data Engineer Diary: Problém s Row Level Security v Power BI

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?

,
Previous Post
Praktická ukázka .NET 6 v Azure Functions
Next Post
Tech Lunch News

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

Menu