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

Next up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now

Reply
ruicaio
Frequent Visitor

Power BI Security Roles

Hi.

I don’t know if there is a bug or if it is supposed to work like that.

If I create a Security Role over a table inside Power Bi Desktop that filters the data it works well. I only see the records that pass the DAX filter expression from that Role.

What I think that is not supposed to happen is that if in the model I create a “Virtual Table” using DAX (VTable = Filter(TABLE; TABLE[Field] = “something”),where TABLE is the table where the SECURITY role is applied, the result pass over the security that is applied to the TABLE.

 

Example here

2 ACCEPTED SOLUTIONS
Daniil
Kudo Kingpin
Kudo Kingpin

This is by design. If you try to use RLS in calculated columns or calculated tables, it will not work as you expect, because RLS is applied at query time, and calculated columns and calculated tables are evaluated at data refresh time, which is before any query time.

View solution in original post

v-qiuyu-msft
Community Support
Community Support

Hi @ruicaio,

 

It is supposed to work like that. The calculated table vTABLE = FILTER('TABLE','TABLE'[Column1] <> "VALUE1") data will not change until the TABLE raw data change. As the Security role is filtering table TABLE and there is no relationship between table TABLE and vTABLE, vTABLE values will not be affected by the role.

 

If you want the vTABLE to be filtered by this Securoty role as well, you need to create a relationship between these two tables. 

 

q3.PNGq4.PNG

 

 

Best Regards,
Qiuyun Yu 

Community Support Team _ Qiuyun Yu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

2 REPLIES 2
v-qiuyu-msft
Community Support
Community Support

Hi @ruicaio,

 

It is supposed to work like that. The calculated table vTABLE = FILTER('TABLE','TABLE'[Column1] <> "VALUE1") data will not change until the TABLE raw data change. As the Security role is filtering table TABLE and there is no relationship between table TABLE and vTABLE, vTABLE values will not be affected by the role.

 

If you want the vTABLE to be filtered by this Securoty role as well, you need to create a relationship between these two tables. 

 

q3.PNGq4.PNG

 

 

Best Regards,
Qiuyun Yu 

Community Support Team _ Qiuyun Yu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Daniil
Kudo Kingpin
Kudo Kingpin

This is by design. If you try to use RLS in calculated columns or calculated tables, it will not work as you expect, because RLS is applied at query time, and calculated columns and calculated tables are evaluated at data refresh time, which is before any query time.

Helpful resources

Announcements
New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

March Power BI Update Carousel

Power BI Community Update - March 2026

Check out the March 2026 Power BI update to learn about new features.