Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! 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]))
)
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
Check out the February 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 53 | |
| 47 | |
| 30 | |
| 15 | |
| 14 |
| User | Count |
|---|---|
| 88 | |
| 72 | |
| 38 | |
| 26 | |
| 24 |