Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join nowTry your skills in the Power BI Dataviz World Championship! Round one ends June 26. Join now
I am testing out row level security in my pbix file and it is not working as expected.
Looking in use a “Single Role for all the User”
The model has three tables : One is Fact table that has aggregate data, second Dim -person is just general information of the agent and third table is RLS security.
Current active relation between tables
Fact table (user_id) <--- dim person )person_id)
Dim person (badge_id) <---> RLSE security (badge_id) M2M.
Reference: https://radacad.com/find-the-data-value-using-lookupvalue-dax-function-in-power-bi-simple-and-useful
MODELmodel
Type of Data from RLS security table
type of data
partner
role partner
example data
VAR upn = SUBSTITUTE(SUBSTITUTE(USERPRINCIPALNAME(), "_","."),"@mall","@mell")
VAR bdg = MAXX(FILTER('RLS Security‘, 'RLS Security ‘[user_Email_ID] = upn),'RLS Security ‘[user_BDGE_NBR])
VAR condition1= PATHCONTAINS('RLS Security ‘[Relationship], bdg)
VAR condition2 = 'RLS Security'[Masked]
VAR condition3= 'RLS Security' [role partner]
Return
( NOT(condition1) && NOT(condition2) && NOT(condition3) )
||
(NOT(condition1) && NOT(condition2) && condition3)
||
(NOT(condition1) && condition2 && NOT(condition3) )
||
(NOT(condition1) && condition2 && condition3)
||
(condition1 && NOT(condition2) && NOT(condition3) )
||
(condition1 && NOT(condition2) && condition3)
||
(condition1 && condition2 && NOT(condition3) )
||
(condition1 && condition2 && condition3)
In this moment I can get from the 'all_in_one RSL' >> user role_partner = 0 or 1 see all .
'existing code'
VAR upn = SUBSTITUTE(SUBSTITUTE(USERPRINCIPALNAME(), "_","."),"@mall","@mell")
VAR bdg = MAXX(FILTER('RLS Security', 'RLS Security'[user_Email_ID] = upn),'RLS Security ‘[user_BDGE_NBR])
VAR condition1= PATHCONTAINS('RLS Security'[Relationship], bdg)
VAR condition2 = 'RLS Security'[Masked]
VAR condition3= 'RLS Security' [role partner]
Return
// 1,0,1
(condition1 && NOT(condition2) && condition3)
||
//1,1,1
(condition1 && condition2 && condition3)
||
//0,1,0
(NOT(condition1) && condition2 && NOT(condition3) )
||
//0,0,1
(NOT(condition1) && NOT(condition2) && condition3)
But I am looking
user role_partner = 1 see only their data
Conceptual -I 'm not sure this can be done
IF ('RLS Security'[Role Partner] = 0,
'existing code'...,
'only show own data')
Your Return statement will always evaluate to True. Please review it.
Thank you. This means that I have to mantain what I need.
Don't miss out on Data Days, June 15 through August 7. Learn Fabric, Power BI, SQL, AI and more.
Check out the May 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 17 | |
| 11 | |
| 11 | |
| 8 | |
| 7 |
| User | Count |
|---|---|
| 40 | |
| 36 | |
| 35 | |
| 35 | |
| 20 |