Page-Level Security (PLS) - Control Page Visibility Based on User Roles
Problem Statement: Currently, Power BI only offers Row-Level Security (RLS) to control data access, but there's no native way to control which report pages users can see in the navigation pane. All users with report access can view all pages, even if those pages aren't relevant to their role.
Requested Feature: Implement Page-Level Security (PLS) that allows report developers to:
- Define which user roles can access specific report pages
- Automatically hide pages from the navigation pane for users without access
- Prevent unauthorized users from manually navigating to restricted pages
Business Use Case: Many organizations have reports with different sections for different audiences:
- Executive dashboards for leadership
- Detailed financial analysis for finance teams
- Operational metrics for operations staff
- HR metrics for HR department
Currently, we must create separate reports or apps for each user group, leading to:
- Content duplication and maintenance overhead
- Multiple versions of similar reports to manage
- Increased workspace clutter
- Higher administrative burden
Proposed Solution:
- Add a "Page Security" setting similar to RLS in Power BI Desktop
- Allow assignment of security roles to individual pages
- In Power BI Service/Apps, only display pages the user has permission to view
- Integrate with existing RLS roles for unified security management
Benefits:
- Simplified report management (one report instead of many)
- Better user experience (users only see relevant content)
- Reduced administrative overhead
- Consistent with existing RLS security model
- More scalable enterprise deployment
Alternative Considered: Creating multiple reports/apps works but creates significant maintenance challenges and doesn't scale well for large organizations with many user roles.
4 Comments
- David_RamosFrequent Visitorthese can be fairly easily done using the technique of 'obfuscation'. - it DOES rely on the dashboard designer hiding all but hteh cover page initially, - then holding a table with exact page names From there - applying a set of measures to bring through the page name (this can use a varying degree com complexity dependant upon your own UAM), returning either a blank or different pages as per that model. Applying these to individual buttons where required gives the 'impression' that the report is tailored to the individual viewing it through Workspace and using the RLS controls in place. You could also use OLS (Object Level Security) via something like Tabular Editor .. but that does have a tendency to make things appear 'broken'
- arpost
Post Prodigy
Would love to see conditional page logic. While there are "hacky" ways to do this, they aren't ideal and either require developers to abandon native Microsoft UI (e.g., create custom page navigation UI inside report) or instruct users "just don't click that". The custom UI eats up precious real estate, so having the ability to just conditionally define page access options would be great.
This can be separate from (though integratable with) RLS as there can be places where you don't have RLS in a report but do want PLS (page-level security).
- rp_pbiNew Memberthe solution will make ui ugly or hacky from the url so need proper solution which is really secure
- 101Mathew
Advocate V
obfuscation - is not security, and pages can still be accessed, if you know how. Page Level Security would give many benefits as outlined by the author - Sometime your not operating via Apps - and Page Level Security for a report is needed, (as outlined above) - this idea has been floating about for a while under the following ideas https://community.fabric.microsoft.com/t5/Fabric-Ideas/Page-Level-security-in-reports/idi-p/4606366 (this one appears to have the most votes) The earliest version of this idea that I can find (quickly) is back in 2021 https://community.fabric.microsoft.com/t5/Fabric-Ideas/Page-level-security/idi-p/4497912 It would be great if all the idea for Page Level Security could be combined into one
Recent ideas
Allow the target pipeline reference in Invoke Pipeline / ExecutePipeline to be set dynamically
Problem Today, the Invoke Pipeline activity (and legacy ExecutePipeline) requires picking the target pipeline statically at design time — a fixed Workspace/Pipeline selection in the UI, which serial...JONATHANHAUN13 hours agoNew MemberNew8Views0likes0CommentsReset Bookmark Navigator Selection to the Default Published View on Browser Refresh
In Power BI Service, when a user selects a bookmark through a Bookmark Navigator, the bookmark identifier is appended to the report URL. If the user refreshes the browser page, the report reloads in ...vivek1234413 hours agoMicrosoft EmployeeNew6Views0likes0CommentsSeparate Interactive and Background Compute Allocation to Prevent Throttling of Live Reports
Problem Statement When Fabric capacity utilization reaches or exceeds 100% in the last one-hour window, end users experience significant disruptions when accessing Power BI Fabric live reports. This...TilakArani14 hours agoNew MemberNew8Views0likes0CommentsAccessibility issue in the Share dialog of embedded Power BI reports
Accessibility issue in the Share dialog of embedded Power BI reports I would like to share an accessibility finding identified while testing an embedded Power BI report published as part of the cont...ugartema14 hours agoAdvocate INew113Views15likes1Comment- fbcideas_migusr17 hours agoNew MemberUnder Review387Views12likes4Comments