Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now

Reply
AsNa_92
Resolver II
Resolver II

User access level - Data filtering

Hi team,

 

I'm trying to find a way to show the data in a dashboard published based on the user level.

So, If the user is manager, he can see data of his team members that are reporting to him only. and if the user is a normal user who doesn't have employees under him can see only his details.

 

 

3 REPLIES 3
Anonymous
Not applicable

Thank you rohit1991 and suparnababu8 

Hi, @AsNa_92 

I think you can refer to the blogs in the community and use USERPRINCIPALNAME() reasonably for your purposes. Here's a blog that aligns with your needs, with the different job titles and the data they have access to, so you can use them to achieve your goals:

Dynamic Use of USERPRINCIPALNAME() for Dynamic RLS - Microsoft Fabric Community

vjianpengmsft_0-1737437516493.png

Dynamic Row Level Security (Dynamic RLS) - Microsoft Fabric Community

 

 

Best Regards

Jianpeng Li

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

rohit1991
Super User
Super User

HI

 

This is a really common scenario in Power BI and luckily, it’s exactly what Row-Level Security (RLS) was made for!

Here’s a step-by-step way to set it up:

 

  1. Build a User Access Table Make a table (in Excel, Power BI, or your data source) that lists each user’s email, their manager’s email, and optionally their role.

     
  2. Create a Role in Power BI: Go to Modeling > Manage Roles. Set a DAX filter on your user table like this:[UserEmail] = USERPRINCIPALNAME() || [ManagerEmail] = USERPRINCIPALNAME

  3. Test in Power BI Desktop Use “View as Role” and enter different emails to make sure it’s working as expected.

  4. Publish to the Service When you publish, this security will kick in automatically, no extra setup needed.


Did it work? ✔ Give a Kudo • Mark as Solution – help others too!
suparnababu8
Super User
Super User

Hi @AsNa_92 

 

If you haven't tried with this approch. You can achive this by using Row-Level Security RLS concept. create a DAX measure 

[ManagerID] = USERPRINCIPALNAME() || [EmployeeID] = USERPRINCIPALNAME()

 

You can test the roles in Power BI Desktop by using the "View As" feature to ensure the data is filtered correctly for different users.

 

If youe need more info, Please go through this Micorsoft Documentation - Row-level security (RLS) guidance in Power BI Desktop - Power BI | Microsoft Learn

Thanks.

Helpful resources

Announcements
Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

March Power BI Update Carousel

Power BI Community Update - March 2026

Check out the March 2026 Power BI update to learn about new features.