Don't miss your chance to take the Fabric Data Engineer (DP-700) exam on us!
Learn moreWe've captured the moments from FabCon & SQLCon that everyone is talking about, and we are bringing them to the community, live and on-demand. Starts on April 14th. Register now
RLS in Power BI Causing Blank Data – Need Help Debugging Issue Summary Applying Row-Level Security (RLS) in Power BI causes all data to go blank when testing with "View As Role" in Power BI Desktop. Relationships seem correct, but the Fact Table is not returning records.
Data Model Setup
Bridge_Contractor =
FILTER(
DISTINCT (
UNION (
SELECTCOLUMNS(Roles_Email, "Contractor Name", [Contractor Name]),
SELECTCOLUMNS(Fact_Table, "Contractor Name", [Contractor A]),
SELECTCOLUMNS(Fact_Table, "Contractor Name", [Contractor B])
)
),
NOT(ISBLANK([Contractor Name]))
)Relationships Table A Table B Column Name Relationship Type Cross-Filter Roles_Email Bridge_Contractor Contractor Name One-to-Many Both Fact Table Bridge_Contractor Contractor Name Many-to-One Both Roles_Email Page_Roles Role One-to-Many Both
RLS Applied on Roles_Email [User Email] = USERPRINCIPALNAME() Expected Behavior: • Users only see assigned contractors • Fact Table filters records where Contractor A or Contractor B match the assigned contractors Actual Behavior: • All data disappears when testing "View As Role" Debugging Done ✔ Relationships checked – "Both" cross-filtering enabled ✔ Bridge_Contractor verified – Contains correct contractor names ✔ RLS removed from Fact Table & Bridge_Contractor – No fix ✔ Manual filtering works – But RLS still blanks Fact Table ✔ Tried modified RLS: [User Email] = USERPRINCIPALNAME() && NOT(ISBLANK([Contractor Name])) Still not working Need Help With: • Why is RLS blanking out Fact Table? • How to ensure Roles_Email filters Fact Table correctly? • Alternative ways to apply RLS? Would appreciate any suggestions.
Hello @nishthabhakta20,
Can you please try this approach:
Bridge_Contractor =
VAR ContractorsFromRoles =
DISTINCT ( SELECTCOLUMNS(Roles_Email, "Contractor Name", [Contractor Name]) )
VAR ContractorsFromFact =
DISTINCT (
UNION (
SELECTCOLUMNS(Fact_Table, "Contractor Name", [Contractor A]),
SELECTCOLUMNS(Fact_Table, "Contractor Name", [Contractor B])
)
)
RETURN
FILTER (
UNION ( ContractorsFromRoles, ContractorsFromFact ),
NOT(ISBLANK([Contractor Name]))
)
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
| User | Count |
|---|---|
| 57 | |
| 37 | |
| 34 | |
| 19 | |
| 17 |
| User | Count |
|---|---|
| 74 | |
| 70 | |
| 37 | |
| 35 | |
| 25 |