Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Need guidance in implementing row level security on the below Employees table:
Employee | Local Department | Department | Manager ID |
Johnny Depp | Data Analytics | Finance | Kris Moll |
Brad Pitt | Data Analytics | Finance | Kris Moll |
Matt Damon | Product Control | Finance | Matt Damon |
James Greaves | Product Control | Finance | Matt Damon |
Roopa Naragracha | Market Data | Finance | Filip Navros |
Madhu Sai | Market Data | Finance | Filip Navros |
Jay Pot | Liquidity Risk | Finance | Chalie Ker |
George Clooney | Liquidity Risk | Finance | Chalie Ker |
Clive Owen | FP&A | Finance | Clive Owen |
Raju Singh | FP&A | Finance | Clive Owen |
Chris Helmsworth | FP&A | Finance | Clive Owen |
Kelly Smith | Data Analytics | Finance | Kris Moll |
This is the data model:
Employees who are not a manager, should only see their data. So for example, Johnny Depp is an employee and is not a manager, so he should only see their records.
Employees who are a manager should see their data as well the employees they manage. So for example, Clive Owen is an employee with manager status so he should see his records as well Raju Singh and Chris Helmsworth.
How do I do this?
Solved! Go to Solution.
Hi,
If you have only two layers it can be handled by following:
1) Join emails of Employee as "Employee Email" and Manager's as "Manager Email". In the Desktop follow this:
https://learn.microsoft.com/en-us/fabric/security/service-admin-row-level-security
2) Here you define 2 roles "Employee" and "Manager"
3) For employee role you set "Employee Email" == userprincipalname()
4) For manager role you set "Manager Email" == userprincipalname()
5) Follow RLS configuration in the Power BI Service after publishing
Hi @mp390988,
we would like to follow up to see if the solution provided by the super user resolved your issue. Please let us know if you need any further assistance.
If our super user response resolved your issue, please mark it as "Accept as solution" and click "Yes" if you found it helpful.
Regards,
Vinay Pabbu
Hi @mp390988,
we would like to follow up to see if the solution provided by the super user resolved your issue. Please let us know if you need any further assistance.
If our super user response resolved your issue, please mark it as "Accept as solution" and click "Yes" if you found it helpful.
Regards,
Vinay Pabbu
Hi @mp390988,
we would like to follow up to see if the solution provided by the super user resolved your issue. Please let us know if you need any further assistance.
If our super user response resolved your issue, please mark it as "Accept as solution" and click "Yes" if you found it helpful.
Regards,
Vinay Pabbu
Hi @mp390988 have you tried using PATH and PATHCONTAINS dax ?
Employees who are a manager should see their data as well the employees they manage.
PATHCONTAINS([Path], LOOKUPVALUE(data[Employee key], data[email], USERPRINCIPALNAME()))
Hi,
If you have only two layers it can be handled by following:
1) Join emails of Employee as "Employee Email" and Manager's as "Manager Email". In the Desktop follow this:
https://learn.microsoft.com/en-us/fabric/security/service-admin-row-level-security
2) Here you define 2 roles "Employee" and "Manager"
3) For employee role you set "Employee Email" == userprincipalname()
4) For manager role you set "Manager Email" == userprincipalname()
5) Follow RLS configuration in the Power BI Service after publishing
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
User | Count |
---|---|
67 | |
64 | |
57 | |
39 | |
27 |
User | Count |
---|---|
85 | |
59 | |
45 | |
43 | |
38 |