Forum Discussion
Performance Optimization for Power BI Row Level Security Model
- 1 year ago
Hi sumanthkakarla,
We sincerely apologize for the inconvenience caused.
As the issue remains unresolved, we kindly request you to raise the matter at Issues - Microsoft Fabric Community for investigation. Alternatively, you may raise a Microsoft support ticket using the link provided below. They will be able to offer specific insights related to your account and potential resolutions.
Microsoft Fabric Support and Status | Microsoft Fabric
If you find our response helpful, we would appreciate it if you could mark it as the accepted solution and provide kudos. This will assist other community members who may be facing similar queries.
Thank you.
Hi sumanthkakarla,
Based on my understanding, the newly created dimension tables (Health System, Facility, Test ID) are disconnected dimensions, meaning they are not naturally filtered by Row-Level Security (RLS) applied to the fact table. Power BI does not allow filter propagation from the fact table to the dimension tables in single-directional relationships. By default, filters only flow from dimension tables to fact tables. Consequently, even though RLS is filtering the fact table, the slicers from the new dimension tables will still display all values, as they are not filtered through RLS.
Please follow the approach outlined below, which may assist in resolving the issue:
- Apply bidirectional relationships only to the slicer dimensions that are necessary for filtering (for example, Health System, Facility, Test ID). Since these dimensions are derived directly from the fact table, Power BI requires a bidirectional flow to enable the fact table, which is RLS-filtered, to pass the filter context back to the dimension tables.
- Ensure that this is applied only to low-cardinality dimensions (such as Health System) and avoid applying it to all dimensions simultaneously to prevent query performance issues. To accomplish this:
- In Model View, click the relationship arrow between the fact table and each dimension table.
- Set the Cross-filter direction to Both.
- Enable "Apply security filter in both directions" only if the slicers must respond to RLS.
This will ensure that your slicers display only relevant values once RLS is applied.
If you find this response helpful, kindly mark it as the accepted solution and provide kudos. This will assist other community members who are facing similar queries.
Thank you.
- sumanthkakarla1 year agoHelper II
Thank you for your reply v-pnaroju-msft
i tried this bi-drectional apparoach to one of the dimenstion and its working as expected, however the rest of the 2 dimensions are not working, when i try to setup both and apply security filter to both direction its giving me the error for the rest of the dimesnions where users are seeing all the slicer filters which they should not have, its wokring for only one Dimension
Error: Cross filter direction can be applied to only one dimeion when using Dynamic RLS" i will send you the exact error