Forum Discussion

ruicaio's avatar
ruicaio
Frequent Visitor
7 years ago
Solved

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

  • 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.

  • 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. 

     

     

     

    Best Regards,
    Qiuyun Yu 

2 Replies

  • Daniil's avatar
    Daniil
    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.

  • v-qiuyu-msft's avatar
    v-qiuyu-msft
    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. 

     

     

     

    Best Regards,
    Qiuyun Yu