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

The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live 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

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! It's time to submit your entry.

January Power BI Update Carousel

Power BI Monthly Update - January 2026

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

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.