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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

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
Solution Supplier
Solution Supplier

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
Solution Supplier
Solution Supplier

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
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors
Top Kudoed Authors