Back to Supabase

Access Control

apps/docs/content/guides/platform/access-control.mdx

1.26.0463.2 KB
Original Source

Supabase provides granular access controls to manage permissions across your organizations and projects.

For each organization and project, a member can have one of the following roles:

  • Owner: full access to everything in organization and project resources.
  • Administrator: full access to everything in organization and project resources except updating organization settings, transferring projects outside of the organization, and adding new owners.
  • Developer: read-only access to organization resources and content access to project resources but cannot change any project settings.
  • Read-Only: read-only access to organization and project resources.
<Admonition type="note">

Read-Only role is only available on the Team and Enterprise plans.

</Admonition>

When you first create an account, a default organization is created for you and you'll be assigned as the Owner. Any organizations you create will assign you as Owner as well.

Manage organization members

To invite others to collaborate, visit your organization's team settings to send an invite link to another user's email. The invite is valid for 24 hours. For project scoped roles, you may only assign a role to a single project for the user when sending the invite. You can assign roles to multiple projects after the user accepts the invite.

<Admonition type="note">

Invites sent from a SAML SSO account can only be accepted by another SAML SSO account from the same identity provider.

This is a security measure to prevent accidental invites to accounts not managed by your enterprise's identity provider.

</Admonition>

Viewing organization members using the Management API

You can also view organization members using the Management API:

bash
# Get your access token from https://supabase.com/dashboard/account/tokens
export SUPABASE_ACCESS_TOKEN="your-access-token"
export ORG_ID="your-organization-id"

# List organization members
curl "https://api.supabase.com/v1/organizations/$ORG_ID/members" \
  -H "Authorization: Bearer $SUPABASE_ACCESS_TOKEN"

Transferring ownership of an organization

Each Supabase organization must have at least one owner. If your organization has other owners then you can relinquish ownership and leave the organization by clicking Leave team in your organization's team settings.

Otherwise, you'll need to invite a user as Owner, and they need to accept the invitation, or promote an existing organization member to Owner before you can leave the organization.

Organization scoped roles vs project scoped roles

<Admonition type="note">

Project scoped roles are only available on the Team and Enterprise plans.

</Admonition>

Each member in the organization can be assigned a role that is scoped either to the entire organization or to specific projects.

  • If a member has an organization-level role, they will have the corresponding permissions across all current and future projects within that organization.
  • If a member is assigned a project-scoped role, they will only have access to the specific projects they've been assigned to. They will not be able to view, access, or even see other projects within the organization on the Supabase Dashboard.

This allows for more granular control, ensuring that users only have visibility and access to the projects relevant to their role.

Organization permissions across roles

The table below shows the actions each role can take on the resources belonging to the organization.

ResourceActionOwnerAdministratorDeveloperRead-Only1
<a href="#org-permissions" id="org-permissions">Organization</a>
Organization ManagementUpdate<IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} /><IconX size={14} />
OpenAI Telemetry Configuration2Update<IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} /><IconX size={14} />
<a href="#member-permissions" id="member-permissions">Members</a>
Organization MembersList<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
OwnerAdd<IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} /><IconX size={14} />
Remove<IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} /><IconX size={14} />
AdministratorAdd<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Remove<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
DeveloperAdd<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Remove<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Owner (Project-Scoped)Add<IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} /><IconX size={14} />
Remove<IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} /><IconX size={14} />
Administrator (Project-Scoped)Add<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Remove<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Developer (Project-Scoped)Add<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Remove<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
InviteRevoke<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Resend<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Accept3<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
<a href="#billing-permissions" id="billing-permissions">Billing</a>
InvoicesList<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Billing EmailView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
SubscriptionView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Billing AddressView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Tax CodesView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Payment MethodsView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
UsageView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
<a href="#org-integration-permissions" id="org-integration-permissions">Integrations (Org Settings)</a>
Authorize GitHub-<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Add GitHub Repositories-<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
GitHub ConnectionsCreate<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
View<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Vercel ConnectionsCreate<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
View<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
<a href="#oauth-permissions" id="oauth-permissions">OAuth Apps</a>
OAuth AppsCreate<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
List<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
<a href="#audit-permissions" id="audit-permissions">Audit Logs</a>
View Audit logs-<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
<a href="#legal-docs-permissions" id="legal-docs-permissions">Legal Documents</a>
SOC2 Type 2 ReportDownload<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Security QuestionnaireDownload<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />

Project permissions across roles

The table below shows the actions each role can take on the resources belonging to the project.

ResourceActionOwnerAdminDeveloperRead-Only45
<a href="#project-permissions" id="project-permissions">Project</a>
Project ManagementTransfer<IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} /><IconX size={14} />
Create<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Update (Name)<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Pause<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Restore<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Restart<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Custom DomainsView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Data (Database)View<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck className="inline" size={14} color="#3FCF8E" />
Manage<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
<a href="#infrastructure-permissions" id="infrastructure-permissions">Infrastructure</a>
Read ReplicasList<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Create<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Add-onsUpdate<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
<a href="#proj-integrations-permissions" id="proj-integrations-permissions">Integrations</a>
Authorize GitHub-<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Add GitHub Repositories-<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
GitHub ConnectionsCreate<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
View<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Vercel ConnectionsCreate<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
View<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
<a href="#database-config-permissions" id="database-config-permissions">Database Configuration</a>
Reset Password-<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Pooling SettingsView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
SSL ConfigurationView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Disk Size ConfigurationView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Network RestrictionsView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Create<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Network BansView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Unban<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
<a href="#api-config-permissions" id="api-config-permissions">API Configuration</a>
API KeysRead service key<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Read anon key<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
JWT SecretView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Generate new<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
API settingsView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
<a href="#auth-config-permissions" id="auth-config-permissions">Auth Configuration</a>
Auth SettingsView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
SMTP SettingsView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Advanced SettingsView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
<a href="#storage-config-permissions" id="storage-config-permissions">Storage Configuration</a>
Upload LimitView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
S3 Access KeysView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Create<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
<a href="#edge-config-permissions" id="edge-config-permissions">Edge Functions Configuration</a>
SecretsView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck className="inline" size={14} color="#3FCF8E" /> 6
Create<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
<a href="#sql-editor-permissions" id="sql-editor-permissions">SQL Editor</a>
QueriesCreate<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
View<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
List<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Run<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck className="inline" size={14} color="#3FCF8E" /> 7
<a href="#database-permissions" id="database-permissions">Database</a>
Scheduled BackupsView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Download<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Restore<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Physical backups (PITR)View<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Restore<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
<a href="#auth-permissions" id="auth-permissions">Authentication</a>
UsersCreate<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
List<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Send OTP<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Send password recovery<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Send magic link<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Remove MFA factors<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
ProvidersView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Rate LimitsView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
Email TemplatesView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
URL ConfigurationView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} /><IconX size={14} />
HooksView<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Create<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
<a href="#storage-permissions" id="storage-permissions">Storage </a>
BucketsCreate<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
View<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
List<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
FilesCreate (Upload)<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
List<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
<a href="#edge-permissions" id="edge-permissions">Edge Functions </a>
Edge FunctionsUpdate<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
View<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
List<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
<a href="#proj-reports-permissions" id="proj-reports-permissions">Reports </a>
Custom ReportCreate<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
View<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
List<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
<a href="#proj-logs-permissions" id="proj-logs-permissions">Logs & Analytics</a>
QueriesCreate<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
View<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
List<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Run<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
<a href="#branching-permissions" id="branching-permissions">Branching</a>
Production BranchRead<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Write<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Development BranchesList<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" />
Create<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Update<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />
Delete<IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconCheck size={14} color="#3FCF8E" /><IconX size={14} />

Footnotes

  1. Available on the Team and Enterprise Plans.

  2. Sending anonymous data to OpenAI is opt in and can improve Studio AI Assistant's responses.

  3. Invites sent from a SSO account can only be accepted by another SSO account coming from the same identity provider. This is a security measure that prevents accidental invites to accounts not managed by your company's enterprise systems.

  4. Available on the Team and Enterprise Plans.

  5. Listed permissions are for the API and Dashboard.

  6. Read-Only role is able to access secrets.

  7. Limited to executing SELECT queries. SQL Query Snippets run by the Read-Only role are run against the database using the supabase_read_only_user. This role has the predefined Postgres role pg_read_all_data.