Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
bboy2025
New Member

RLS Dynamic

Hi guys

I have a table User which filter my fact table

I would like apply a RLS to display data of people who has the same hierarchy than the user who has loged in Power BI Service

For that, I created a role and apply a filter in my table User

 

[Hierarchy_1] == CALCULATE(SELECTEDVALUE('Dim User'[Hierarchy_1]),'Dim User'[UserPrincipalName]= USERPRINCIPALNAME())

&&

[Hierarchy_2] == CALCULATE(SELECTEDVALUE('Dim User'[Hierarchy_2]),'Dim User'[UserPrincipalName]= USERPRINCIPALNAME())

It doesn't work and displays only data of the user who loged in. It works if I write down the value instead of using CALCULATE....


Do you know how can I implement that?


Thank you

1 ACCEPTED SOLUTION
jgeddes
Super User
Super User

If I have a model with a fact table that is filtered by a user dimension table as follows...

jgeddes_5-1758820185500.png

 

I can set RLS on the dim_user table with this statement to filter the fact table with the hierarchy of the current user...

[hierarchy] == MINX(FILTER('dim_user', 'dim_user'[user] = USERPRINCIPALNAME()), 'dim_user'[hierarchy])

Full example data...

jgeddes_1-1758819802716.png

jgeddes_6-1758820214632.png

 

 

Now with RLS on with  user1@fake.com as the user...

jgeddes_3-1758819967573.png

jgeddes_7-1758820286435.png

 

 

Hope this helps.

 





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!





View solution in original post

2 REPLIES 2
bboy2025
New Member

@jgeddes please could you tell me the reason why my formula doesn't work ?

jgeddes
Super User
Super User

If I have a model with a fact table that is filtered by a user dimension table as follows...

jgeddes_5-1758820185500.png

 

I can set RLS on the dim_user table with this statement to filter the fact table with the hierarchy of the current user...

[hierarchy] == MINX(FILTER('dim_user', 'dim_user'[user] = USERPRINCIPALNAME()), 'dim_user'[hierarchy])

Full example data...

jgeddes_1-1758819802716.png

jgeddes_6-1758820214632.png

 

 

Now with RLS on with  user1@fake.com as the user...

jgeddes_3-1758819967573.png

jgeddes_7-1758820286435.png

 

 

Hope this helps.

 





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!





Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 2025 Power BI update to learn about new features.

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors
Top Kudoed Authors