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

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

Reply
kpk122
Frequent Visitor

Data underneath Row-Level Security filters

We're trying to implement a workaround for the lack of column-level and page-level security.  We want to block a particular user group from viewing profitability metrics, which are stored as fields in a Deals table alongside others we want to summarize (let's say production volume).  Basically, I want profitability metrics to zero out / be invisible to the one group but have no other impacts on the reports or structure.

 

We tried breaking up the Deals table, into a "Production" table without RLS, and a "Profitability" table with RLS.  (Note that to avoid any cross filtering complications, in the description below these were stored with no relationship between the tables.)

 

When viewing the data, everything works as intended - when viewing as the one user group, the Production table appears normally and the Profitability table appears with no rows.  

 

What's odd is that the Profitability data is still active under the surface - if I create a calculated column in the Production table doing a SUMX off the Profitability table, I get the same figures as if RLS had not been active... even though the Profitability table itself appears to be blank.

 

This begs two questions:

  1.  Does this mean that RLS is only relevant to display purposes, but not actual data analysis, and is purely for optics?  If so it seems pretty weak.
  2.  Given the description above does anyone have ideas for an alternate workaround?

Many thanks,

1 ACCEPTED SOLUTION
d_gosbell
Super User
Super User


@kpk122 wrote:

 

  1.  Does this mean that RLS is only relevant to display purposes, but not actual data analysis, and is purely for optics?  If so it seems pretty weak.

 


No, RLS is applied to any queries against the data. Your issue is that calculated columns are resolved at data refresh time before RLS is applied. Any RLS restrictions would then be applied on the results of a calculated column.

 


  1.  Given the description above does anyone have ideas for an alternate workaround?

 


The way to fix this is to do the SUMX within a measure, not using a calculated column.

View solution in original post

2 REPLIES 2
d_gosbell
Super User
Super User


@kpk122 wrote:

 

  1.  Does this mean that RLS is only relevant to display purposes, but not actual data analysis, and is purely for optics?  If so it seems pretty weak.

 


No, RLS is applied to any queries against the data. Your issue is that calculated columns are resolved at data refresh time before RLS is applied. Any RLS restrictions would then be applied on the results of a calculated column.

 


  1.  Given the description above does anyone have ideas for an alternate workaround?

 


The way to fix this is to do the SUMX within a measure, not using a calculated column.

Thanks @d_gosbell, this did the job perfectly.  That's also a great tip on the sequence of events.

Helpful resources

Announcements
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

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

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.