Page Level Access Control
By default, all published pages are visible to everyone with access to the project. Page level access control allows you to specify who can view a published page. To configure who can see a page:- Navigate to the page in the “Editor” view
- Open the “Share” menu in the top right corner of the page from the “Edit” view
- Use the dropdown under “Manage Access” to configure access settings
Options
- Everyone with access to the project (default) - everyone in the team will be able to view the page
- Only specific people - you can add specific users to the page
Users with the
Developer
or Admin
role can always view all pages.Row Level Security
Row level security allows you to control who can see specific rows of data in a source. To configure row level security, first open the Access Settings for your organization. To apply row level security to a source, you need:- A Rule: A rule specifies which tables are affected, which column should be used to determine access, and which user variable will be compared with the column
- User Variables: A user variable is a value set for each user to match rows against the column in the rule.
- The rule can be configured to either apply to everyone or to no one by default. If set to “apply to no one,” you are responsible for manually granting access to specific users.
Users without defined user variables cannot access any rows in tables with RLS rules.
It can take up to 5 minutes for user variables to apply. During this time, users will not be able to access any rows in tables with RLS rules.
Example
You have a “leads” table with a “sales_rep_id” column containing the id of sales reps. You want to allow sales reps to see rows with data about their own leads.lead_name | deal_stage | sales_rep_id | sales_rep |
---|---|---|---|
ACME | Prospect | 1 | John Doe |
Contoso | Prospect | 2 | Jane Smith |
Fabrikam | Proposal | 2 | Jane Smith |
Create a Rule
- Column:
sales_rep_id
- Operator:
=
- User Variable:
rep_id
(or any name you want to use) - Apply to tables:
leads
Create User Variables
- Create a user variable for John Doe
- Variable:
rep_id
(must match column above) - Value:
1
- Users: Select “john.doe@example.com” from the dropdown
- Variable:
- Create a user variable for Jane Smith
- Variable:
rep_id
- Value:
2
- Users: Select “jane.smith@example.com” from the dropdown
- Variable:
sales_rep_id
column matches their id.
When Jane Smith views the “leads” table, they will only see rows where the sales_rep_id
column matches their id.
Access Preview
- Table:
leads
- User:
john.doe@example.com
- 33.3% accessible
- Total rows: 3
- User can access: 1
- john.doe@example.com is bound by access rule