Forum Discussion

AsNa_92's avatar
AsNa_92
Resolver II
1 year ago

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

  • 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.

  • 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.

  • Anonymous's avatar
    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

    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.