How can table permissions and web roles be designed to securely expose Dataverse data through Power Pages?
Question
Answers
Power Pages security should be designed around one question:
Which records should this user be allowed to access?
Web roles define the user's site role, while table permissions control what Dataverse data that role can access.
For example:
Customer → Customer Web Role → Account-based permission → Customer's records
Avoid giving Global access when users should only see records related to their own Account or Contact.
Also review:
- Read/Create/Write/Delete permissions
- Parent-child table relationships
- Anonymous access
- Web API exposure
- Sensitive columns
- Multiple web roles assigned to the same user
A common mistake is securing a page but forgetting that the underlying Dataverse data also needs appropriate table permissions.
Before production, test with different identities:
Customer A → Customer B → Anonymous User → Administrator
Verify that each user can access only the records intended for them.
Key principle: Don't design Power Pages security from the screen backwards. Design it from the data access requirement backwards.