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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
aolan
Frequent Visitor

RLS and Calculations Using ALL

Hi,

 

Suppose I have the locations A, B, and C. Each location has employees in it and I have applied RLS so that the employees can only see their data in their location and it is working fine. However, I have a calculated measure that uses ALL to calculate the percentile rank against all of the locations. Regardless of what location I am viewing, the percentile should stay the same (again, as it is ranked against the entire population regardless of location). And this is working fine for me as I have the ability to view all of the locations.

 

Now, I have noticed that if employee 1 from location A views the report, the value of the percentile rank changes because I assume that ALL only gets the data from location A. It is like RLS trumps the calculations inside the report. Is there any way around this?

 

Thanks!

1 ACCEPTED SOLUTION
mariussve1
Impactful Individual
Impactful Individual

Hi,

 

If you think about it, this is what you want. To create measures the measure needs to access the data it shall calculate. So, if ALL() had override RLS it means it had access to all og the data, and this means end users could see data the should not. I do understand its easy to think what happends inside a measure is not visible to end users, but as I wrote the data to calculate need to be available also to end users.

 

A work around is to create a calculated table where you eather remove all columns that identify sensitive data, like names and so on. Then dont apply rls on this table. Other work around is to create a pre aggregated table with all calculations in columns and of course remove all sensitive data and dont have rls on this.

 

Br

Marius

View solution in original post

1 REPLY 1
mariussve1
Impactful Individual
Impactful Individual

Hi,

 

If you think about it, this is what you want. To create measures the measure needs to access the data it shall calculate. So, if ALL() had override RLS it means it had access to all og the data, and this means end users could see data the should not. I do understand its easy to think what happends inside a measure is not visible to end users, but as I wrote the data to calculate need to be available also to end users.

 

A work around is to create a calculated table where you eather remove all columns that identify sensitive data, like names and so on. Then dont apply rls on this table. Other work around is to create a pre aggregated table with all calculations in columns and of course remove all sensitive data and dont have rls on this.

 

Br

Marius

Helpful resources

Announcements
July 2024 Power BI Update

Power BI Monthly Update - July 2024

Check out the July 2024 Power BI update to learn about new features.

July Newsletter

Fabric Community Update - July 2024

Find out what's new and trending in the Fabric Community.