The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredCompete to become Power BI Data Viz World Champion! First round ends August 18th. Get started.
Hi,
I have created a common semantic data model. On this data model we are creating 2 power bi reports.
Report 1 - needs to have RLS.
Report 2 - Should be without RLS.
We initially thought we will built a common semantic data model and then tie Report 1 with an RLS excel file. But we are unable to filter rows from common semantic data model in Report 1.
Now, we are thinking of putting RLS in common semantics data model, which makes Report 1 as expected, but then we are unable to bypass RLS in Report 2.
Can anyone please help me with this issue? How can i design the data model and report to acheive my goal?
Solved! Go to Solution.
Thankyou @rohit1991, @BhavinVyas3003, for your response.
Hi Arti173,
We appreciate your question on the Microsoft Fabric Community Forum.
From what I understand, Power BI applies Row-Level Security (RLS) at the dataset level. When RLS is set on a dataset (semantic model), it works automatically for all reports connected to that dataset. This stops RLS from being ignored in one report while working in another, if both use the same dataset.
Please follow these steps which might help solve the problem:
Also, please check these links:
Use composite models in Power BI Desktop - Power BI | Microsoft Learn
Use DirectQuery in Power BI Desktop - Power BI | Microsoft Learn
We hope this information helps you fix the issue.
If you have more questions, please feel free to ask the Microsoft Fabric community.
Thank you.
Hi Arti173,
We are following up to see if your query has been resolved. Should you have identified a solution, we kindly request you to share it with the community to assist others facing similar issues.
If any response was helpful, please mark it as the accepted solution, as this helps the broader community.
Should you have any further queries, kindly feel free to contact the Microsoft Fabric community.
Thank you.
Hi Arti173,
We would like to know if the details we shared have helped solve your problem. If you require any additional assistance, feel free to connect with the Microsoft Fabric community.
Thank you.
Hi Arti173,
We would like to follow up and see whether the details we shared have resolved your problem.
If you need any more assistance, please feel free to connect with the Microsoft Fabric community.
Thank you.
Thankyou @rohit1991, @BhavinVyas3003, for your response.
Hi Arti173,
We appreciate your question on the Microsoft Fabric Community Forum.
From what I understand, Power BI applies Row-Level Security (RLS) at the dataset level. When RLS is set on a dataset (semantic model), it works automatically for all reports connected to that dataset. This stops RLS from being ignored in one report while working in another, if both use the same dataset.
Please follow these steps which might help solve the problem:
Also, please check these links:
Use composite models in Power BI Desktop - Power BI | Microsoft Learn
Use DirectQuery in Power BI Desktop - Power BI | Microsoft Learn
We hope this information helps you fix the issue.
If you have more questions, please feel free to ask the Microsoft Fabric community.
Thank you.
Option 1: Composite Model Approach
Create and publish one common semantic model without RLS. Then, for each report, create a new Power BI file that connects to this model using DirectQuery (Power BI dataset). In Report 1, add a local RLS table and define RLS roles there. In Report 2, simply connect to the model without adding any RLS logic. This keeps the central model clean and allows different RLS behavior in each report.
Option 2: Duplicate Dataset Approach
Create the common semantic model, then publish it twice to Power BI Service as two separate datasets. Apply RLS only in Dataset A (used by Report 1), and leave Dataset B without RLS (used by Report 2). This works without using composite models but requires maintaining two datasets separately.
Hi @Arti173
This is a pretty common issue when trying to reuse a semantic model for both secured (RLS) and open access reports.
Here’s the thing: once you apply RLS in a model, Power BI enforces it everywhere that model is used. So Report 2 will always be affected by RLS, whether you want it or not. There's no built-in way to say “apply RLS only to Report 1 but not Report 2” if both are connected to the same dataset.
Option 1 (cleanest):
Make a copy of your semantic model:
a. One version with RLS (for Report 1)
b. One version without RLS (for Report 2)
Yeah, it’s not the most elegant from a maintenance standpoint, but it’s simple and works.
Option 2 (if you really want one model):
Use a conditional RLS setup. Like, in your security table, add a column ApplyRLS, then define the role like this:
[Username] = USERNAME() && [ApplyRLS] = TRUE()
This way, only users marked for RLS will get filtered, and you can use a “dummy” user or service principal for Report 2 that doesn't trigger RLS. But you’ll still need to be super careful with access and publishing.
User | Count |
---|---|
41 | |
15 | |
13 | |
13 | |
9 |
User | Count |
---|---|
50 | |
43 | |
24 | |
22 | |
18 |