Forum Discussion
Can we add RLS with page level + region level together?
- 8 months ago
Uzi2019 ,
,Understand the Limitation Power BI does not support page-level security. RLS works only on data (rows), not on report pages. So page visibility cannot be controlled using RLS alone
Step 1: Create a Region-based RLS role. Filter data using:
[Region] = USERPRINCIPALNAME()
(or via a User-Region mapping table)This ensures clients see only their region’s data across pages
Step 2: Create an Internal Users Role: Create a separate role like Internal_Full_Access. Do not apply any data filter. Assign internal users to this role. Internal users will see full data
Step 3: Hide the Internal Page: Right-click the 5th page, Select Hide pageHidden pages: Are not visible in report tabs and Can only be accessed through navigation
Step 4: Create Navigation Buttons: Add buttons for page navigation
Create a DAX measure to identify internal users:
IsInternalUser =
IF(
USERPRINCIPALNAME() IN {
"[email protected]",
"[email protected]"
},
1,
0
)
Step 5: Control Button Visibility: Select the button for the 5th (internal) page
Go to Format → Action → Visibility
Bind it to the IsInternalUser measure. Button appears only for internal users
Step 6: Final Result, Clients see only 4 pages, Data filtered by Region RLS and Internal Users can see all 5 pages, Have full data access
Important Note:
Hidden pages are not real security
Sensitive data must still be protected using RLS
If strict security is required, create two separate reports using the same datasethttps://www.linkedin.com/pulse/page-tab-level-security-conditional-navigation-power-bi-a%25C5%259F%25C4%25B1ro%25C4%259Flu/
https://www.youtube.com/watch?v=AoyIeNKpUqU
Uzi2019 ,
,Understand the Limitation Power BI does not support page-level security. RLS works only on data (rows), not on report pages. So page visibility cannot be controlled using RLS alone
Step 1: Create a Region-based RLS role. Filter data using:
[Region] = USERPRINCIPALNAME()
(or via a User-Region mapping table)
This ensures clients see only their region’s data across pages
Step 2: Create an Internal Users Role: Create a separate role like Internal_Full_Access. Do not apply any data filter. Assign internal users to this role. Internal users will see full data
Step 3: Hide the Internal Page: Right-click the 5th page, Select Hide page
Hidden pages: Are not visible in report tabs and Can only be accessed through navigation
Step 4: Create Navigation Buttons: Add buttons for page navigation
Create a DAX measure to identify internal users:
IsInternalUser =
IF(
USERPRINCIPALNAME() IN {
"[email protected]",
"[email protected]"
},
1,
0
)
Step 5: Control Button Visibility: Select the button for the 5th (internal) page
Go to Format → Action → Visibility
Bind it to the IsInternalUser measure. Button appears only for internal users
Step 6: Final Result, Clients see only 4 pages, Data filtered by Region RLS and Internal Users can see all 5 pages, Have full data access
Important Note:
Hidden pages are not real security
Sensitive data must still be protected using RLS
If strict security is required, create two separate reports using the same dataset
https://www.linkedin.com/pulse/page-tab-level-security-conditional-navigation-power-bi-a%25C5%259F%25C4%25B1ro%25C4%259Flu/
https://www.youtube.com/watch?v=AoyIeNKpUqU