Tento článek je o funkci, která se jmenuje USERPRINCIPALNAME, a která umí zobrazit uživatelské jméno přihlášeného uživatele.

Funkce se typicky používá pro zabezpečení reportů pomocí RLS – tedy k tomu, aby uživatelé viděli pouze řádky, které vidět mají.

Funkce nemá žádné argumenty, vždy se tedy zapisuje takto:

  • =USERPRINCIPALNAME()

Funkci nelze zapsat do sloupce. Zapisuje se do measure a také při definici rolí.

Je důležité, že tato funkce vrací zcela jiné výsledky v desktopu a jiné na powerbi.com. V prvním případě je to název počítače, ale ve druhém je to login (email) uživatele.

Pokud ji zapíšeme do measure, můžeme ji pak zobrazit ve vizuálu, díky čemuž bude pak vždy vidět, kdo je zrovna přihlášený nebo název počítače (na Desktopu):

Zajímavější je použít USERPRINCIPALNAME pro dynamické RLS. Řekněme, že máme takovouto tabulku:

Chceme, aby každý Account manager viděl jen své položky. 

Vytvoříte roli:

Pak ji v portálu přiřadíme všem, kterým report nasdílíme. Od té chvíle už všichni vidí jen to své – protože každému přiřazuje funkce PRINCIPALUSERNAME různý výsledek.

Výsledek samozřejmě nelze testovat na desktopu – právě proto, že funkce USERPRINCIPALNAME na desktopu nemůže logicky zobrazovat uživatele přihlášeného do desktopu.