Skip to main content

Access Control

还没翻译译自英文(supabase.com)本页 42 段都还没译

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.
  • No-access: no access to any organization or project resources by default. Use this for members who should only see the specific projects they're granted a project-scoped role on.

Note

Read-Only and No-access roles are only available on the Team and Enterprise plans.

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.

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.

Viewing organization members using the Management API

You can also view organization members using the Management API:

# 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

Note

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

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.

To default a member to zero project access and grant access on a per-project basis, assign them the organization-level No access role, then grant project-scoped roles for the specific projects they need. The No-access role is omitted from the permission tables below since it has none of the listed permissions by default.

Organization permissions across roles

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

ResourceActionOwnerAdministratorDeveloperRead-Only1
Organization
Organization ManagementUpdate✓✗✗✗
Delete✓✗✗✗
OpenAI Telemetry Configuration2Update✓✗✗✗
Members
Organization MembersList✓✓✓✓
OwnerAdd✓✗✗✗
Remove✓✗✗✗
AdministratorAdd✓✓✗✗
Remove✓✓✗✗
DeveloperAdd✓✓✗✗
Remove✓✓✗✗
Owner (Project-Scoped)Add✓✗✗✗
Remove✓✗✗✗
Administrator (Project-Scoped)Add✓✓✗✗
Remove✓✓✗✗
Developer (Project-Scoped)Add✓✓✗✗
Remove✓✓✗✗
InviteRevoke✓✓✗✗
Resend✓✓✗✗
Accept3✓✓✓✓
Billing
InvoicesList✓✓✓✓
Billing EmailView✓✓✓✓
Update✓✓✗✗
SubscriptionView✓✓✓✓
Update✓✓✗✗
Billing AddressView✓✓✓✓
Update✓✓✗✗
Tax CodesView✓✓✓✓
Update✓✓✗✗
Payment MethodsView✓✓✓✓
Update✓✓✗✗
UsageView✓✓✓✓
Integrations (Org Settings)
Authorize GitHub-✓✓✗✗
Add GitHub Repositories-✓✓✗✗
GitHub ConnectionsCreate✓✓✗✗
Update✓✓✗✗
Delete✓✓✗✗
View✓✓✓✓
Vercel ConnectionsCreate✓✓✗✗
Update✓✓✗✗
Delete✓✓✗✗
View✓✓✓✓
OAuth Apps
OAuth AppsCreate✓✓✗✗
Update✓✓✗✗
Delete✓✓✗✗
List✓✓✓✓
Audit Logs
View Audit logs-✓✓✓✓
Legal Documents
SOC2 Type 2 ReportDownload✓✓✓✓
Security QuestionnaireDownload✓✓✓✓

Project permissions across roles

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

ResourceActionOwnerAdminDeveloperRead-Only45
Project
Project ManagementTransfer✓✗✗✗
Create✓✓✗✗
Delete✓✓✗✗
Update (Name)✓✓✗✗
Pause✓✓✗✗
Restore✓✓✗✗
Restart✓✓✓✗
Custom DomainsView✓✓✓✓
Update✓✓✗✗
Data (Database)View✓✓✓✓
Manage✓✓✓✗
Infrastructure
Read ReplicasList✓✓✓✓
Create✓✓✗✗
Delete✓✓✗✗
Add-onsUpdate✓✓✗✗
Integrations
Authorize GitHub-✓✓✓✓
Add GitHub Repositories-✓✓✓✓
GitHub ConnectionsCreate✓✓✗✗
Update✓✓✗✗
Delete✓✓✗✗
View✓✓✓✓
Vercel ConnectionsCreate✓✓✗✗
Update✓✓✗✗
Delete✓✓✗✗
View✓✓✓✓
Database Configuration
Reset Password-✓✓✗✗
Pooling SettingsView✓✓✓✓
Update✓✓✗✗
SSL ConfigurationView✓✓✓✓
Update✓✓✗✗
Disk Size ConfigurationView✓✓✓✓
Update✓✓✗✗
Network RestrictionsView✓✓✓✓
Create✓✓✗✗
Delete✓✓✗✗
Network BansView✓✓✓✓
Unban✓✓✗✗
API Configuration
API KeysRead service key✓✓✓✗
Read anon key✓✓✓✗
JWT SecretView✓✓✓✗
Generate new✓✓✗✗
API settingsView✓✓✓✓
Update✓✓✗✗
Auth Configuration
Auth SettingsView✓✓✓✓
Update✓✓✗✗
SMTP SettingsView✓✓✓✓
Update✓✓✗✗
Advanced SettingsView✓✓✓✓
Update✓✓✗✗
Storage Configuration
Upload LimitView✓✓✓✓
Update✓✓✗✗
S3 Access KeysView✓✓✓✗
Create✓✓✗✗
Delete✓✓✗✗
Edge Functions Configuration
SecretsView✓✓✓✓ 6
Create✓✓✗✗
Delete✓✓✗✗
SQL Editor
QueriesCreate✓✓✓✓
Update✓✓✓✓
Delete✓✓✓✓
View✓✓✓✓
List✓✓✓✓
Run✓✓✓✓ 7
Database
Scheduled BackupsView✓✓✓✓
Download✓✓✓✗
Restore✓✓✓✗
Physical backups (PITR)View✓✓✓✓
Restore✓✓✓✗
Authentication
UsersCreate✓✓✓✗
Delete✓✓✓✗
List✓✓✓✓
Send OTP✓✓✓✗
Send password recovery✓✓✓✗
Send magic link✓✓✓✗
Remove MFA factors✓✓✓✗
ProvidersView✓✓✓✓
Update✓✓✗✗
Rate LimitsView✓✓✓✓
Update✓✓✗✗
Email TemplatesView✓✓✓✓
Update✓✓✗✗
URL ConfigurationView✓✓✓✓
Update✓✓✗✗
HooksView✓✓✓✓
Create✓✓✓✗
Delete✓✓✓✗
Storage
BucketsCreate✓✓✓✗
Update✓✓✓✗
Delete✓✓✓✗
View✓✓✓✓
List✓✓✓✓
FilesCreate (Upload)✓✓✓✗
Update✓✓✓✗
Delete✓✓✓✗
List✓✓✓✓
Edge Functions
Edge FunctionsUpdate✓✓✓✗
Delete✓✓✓✗
View✓✓✓✓
List✓✓✓✓
Reports
Custom ReportCreate✓✓✓✗
Update✓✓✓✗
Delete✓✓✓✗
View✓✓✓✓
List✓✓✓✓
Logs & Analytics
QueriesCreate✓✓✓✓
Update✓✓✓✓
Delete✓✓✓✓
View✓✓✓✓
List✓✓✓✓
Run✓✓✓✓
Branching
Production BranchRead✓✓✓✓
Write✓✓✓✗
Development BranchesList✓✓✓✓
Create8✓✓✓✗
Update✓✓✓✗
Delete✓✓✓✗

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. ↩

  8. When using dashboard branching without a GitHub integration, the first branch creation also registers the project's production branch — a one-time step that requires Owner or Administrator. See Branching via the dashboard for details. Developers can create, update, and delete branches normally after that. ↩