Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hi All,
I'm currently working on a Power BI report where I need to restrict access to certain pages for specific users. Unfortunately, I'm not in a position to use Power BI Apps or create separate reports, so everything needs to remain within a single report.
I've explored a few options, such as controlling the visibility of buttons or shapes to navigate between pages. However, I haven't been able to find a way to dynamically control their visibility using DAX - those options just don't seem to appear for me.
Has anyone faced a similar challenge or found a workaround to conditionally hide/show pages or navigation elements based on user roles or filters, all within the same report?
Hey @Manoj21011988 ,
Yes, I have faced this challenge before, and you are right Power BI does not currently support dynamic page-level security like it does for rows. A common workaround that works well within a single report:
Steps I Followed:
Create a DAX measure to check user identity:
ShowAdminPage = IF(USERPRINCIPALNAME() = "admin@example.com", "Go to Admin Page", BLANK())
Use that measure in a card visual placed over the button and set transparency (or use bookmark workaround).
In the Selection Pane, toggle the visibility of the navigation buttons by layering a blocking shape/card that only appears for unauthorized users.
It's not true page-level security, but it’s a practical UI-driven method that works in many cases.
For Detailed Information:
Dynamic Navigation Based on User in Power BI – SQLBI
Create navigation experiences in reports – Microsoft Learn
Tips for Using USERPRINCIPALNAME in Power BI – RADACAD
Power BI Button Visibility Workaround Using DAX – Excelerator BI
Page Navigation Without Page Access – PowerBI Community Thread
If you found this solution helpful, please consider accepting it and giving it a kudos (Like) it’s greatly appreciated and helps others find the solution more easily.
Best Regards,
Nasif Azam
You can follow this approach, I tested it and it will work
https://www.youtube.com/watch?v=FrEDZZXiit8
but remember there is a loop hole in this method, every time a person opens a specific page, reportSection id will appear in the report URL, so if one person shares that id to other person then users can easily by pass the page level security that you are trying to implement using RLS and DAX.
Connect on LinkedIn
|
Page Level Security is not a thing. Create separate reports.
I have same question before, tried with RLS and DAX role indicator measures AI provided but still couldn't figure out how. Hopefully someone with a tested solution can help.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
11 | |
7 | |
2 | |
2 | |
1 |
User | Count |
---|---|
3 | |
3 | |
3 | |
2 | |
2 |