Skip to content
Platform

个人访问令牌

个人访问令牌(PATs)用于验证你对管理 API以及基于它构建的工具的访问,比如 Supabase CLI 和 MCP 服务器。它们有两种类型:

🌐 Personal access tokens (PATs) authenticate you to the Management API and the tools built on it, like the Supabase CLI and the MCP server. They come in two flavors:

  • 经典令牌,在仪表板中带有 Legacy(遗留) 徽章,拥有你账户的全部访问权限。这意味着你今天所属的每个组织和每个项目的所有权限,以及你未来创建或加入的每个项目的权限。一年前创建的经典令牌,也可以访问你今天创建的项目。
  • 作用域令牌 仅包含你选择的组织、项目和权限。例如:你可以读取某个项目的数据库并查看其日志,但无法访问计费或组织设置。

要使用带作用域的个人访问令牌,你需要一个 Supabase 账号,并且在你希望令牌访问的组织或项目中有相应角色。带作用域的个人访问令牌的权限只能限制你账号已经有的操作,绝不会增加权限。如果你的角色没有某项权限(参见 访问控制),即使给令牌授予该权限也没用:令牌仍然无法执行该操作。

🌐 To use scoped personal access tokens you need a Supabase account with a role on the organization or project you want the token to reach. A scoped personal access token's permissions only ever narrow what your account can already do. They never grant more. If your role doesn't include a permission (see Access Control), granting that permission to a token has no effect: the token still can't do it.

你创建作用域令牌的方式与经典令牌相同,都是在你的访问令牌设置中完成。在创建时选择要授予的权限,而不是默认让令牌拥有全部访问权限。

🌐 You create scoped tokens the same way as classic tokens, from your access tokens settings. Choose which permissions to grant during creation instead of leaving the token with full access.

创建并使用有范围的个人访问令牌 #

🌐 Create and use a scoped personal access token

这个例子创建了一个只能读取一个项目设置的令牌,然后调用了该范围之外的端点。两个调用都是每个组织角色都可以读取的,包括只读,所以任何人都可以运行它。

🌐 This example creates a token that can only read one project's settings, then calls an endpoint outside that scope. Both calls are reads available to every organization role, including Read-Only, so anyone can run it.

  1. 去你的 访问令牌 设置里生成一个新的令牌。
  2. 在创建它时,将令牌限定在一个项目中,并只授予项目设置的读取权限。
  3. 复制令牌(作用域个人访问令牌以 sbp_fc 开头)并在管理 API 中使用它,将 your-project-ref 替换为项目的引用:
export SUPABASE_ACCESS_TOKEN="sbp_fc..."
# Allowed: Project Settings Read unlocks this endpoint
curl "https://api.supabase.com/v1/projects/your-project-ref" \
-H "Authorization: Bearer $SUPABASE_ACCESS_TOKEN"
# Returns the project's details
# Denied: this endpoint needs the Database permission, which the token lacks
curl -i "https://api.supabase.com/v1/projects/your-project-ref/types/typescript" \
-H "Authorization: Bearer $SUPABASE_ACCESS_TOKEN"
# Returns HTTP 403

要准确授予工作流所需的权限,请参阅 权限范围 了解每个端点所需的权限,以及 MCP 工具 了解每个 MCP 工具所需的权限。

🌐 To grant exactly what a workflow needs, see Permission scopes for the permission each endpoint requires and MCP tools for the permission each MCP tool requires.

在 Supabase CLI 中使用带作用域的个人访问令牌 #

🌐 Use a scoped personal access token with the Supabase CLI

supabase login 的浏览器流程会创建一个经典令牌。如果你想用范围令牌运行 CLI,可以把它设置在 SUPABASE_ACCESS_TOKEN 环境变量中,或者用 supabase login --token 保存它。环境变量会优先于任何已保存的令牌,所以它也是在 CI 中的正确选择。

🌐 The browser flow of supabase login creates a classic token. To run the CLI with a scoped token instead, set it in the SUPABASE_ACCESS_TOKEN environment variable, or save it with supabase login --token. The environment variable takes precedence over any saved token, which also makes it the right choice for CI.

例如,使用一个被授予 项目(全账户) 且拥有 读取 权限的令牌,supabase projects list 列出该令牌可以访问的项目:

🌐 For example, with a token granted Projects (account-wide) with Read access, supabase projects list lists the projects the token can reach:

export SUPABASE_ACCESS_TOKEN="sbp_fc..."
supabase projects list

当令牌缺少所需权限时,调用管理 API 的命令会因权限错误而失败。例如,supabase link 需要 项目设置、API 密钥 和 API 密钥秘密,所有这些都需要 读取 权限。

🌐 Commands that call the Management API fail with a permission error when the token lacks the required permission. supabase link, for instance, needs Project Settings, API Keys, and API Key Secrets, all with Read access.

连接你数据库密码的数据库命令,比如设置了 SUPABASE_DB_PASSWORD 的 supabase db push,不受令牌权限的限制。一个在执行 supabase db push 之前运行 supabase link 的工作流仍然需要 supabase link 所需的权限。

🌐 Database commands that connect with your database password, such as supabase db push with SUPABASE_DB_PASSWORD set, aren't limited by the token's permissions. A workflow that runs supabase link before supabase db push still needs the permissions supabase link requires.

权限范围 #

🌐 Permission scopes

每个权限控制对某个资源的只读或读写访问,例如 数据库、Edge 函数 或 生产分支。下面列出的权限和名称与创建作用域个人访问令牌时显示的内容相匹配。目前未解锁任何公共管理 API 端点或 MCP 工具的权限已省略。有些端点需要不止一个权限。脚注会标明这些情况。

🌐 Each permission controls read or read-write access to one resource, for example Database, Edge Functions, or Production Branches. The permissions and names below match those shown when creating a scoped personal access token. Permissions that currently unlock neither a public Management API endpoint nor an MCP tool are omitted. A few endpoints need more than one permission. The footnotes call these out.

权限所需访问管理 API 端点
项目
项目设置读取获取 JIT 访问配置
获取 Postgres 升级资格1
获取 Postgres 升级状态1
获取项目
获取服务健康
列出可用的恢复版本
列出私有链接关联
预览项目转移
可读写取消项目恢复
创建私有链接关联
删除项目
删除私密链接关联
删除数据库的私有链接关联
获取 pgsodium 配置
OAuth 授权项目声明2
暂停项目
重新启动一个项目
恢复项目
更新项目
更新认证服务配置3
更新 JIT 访问配置
更新 pgsodium 配置
升级 Postgres 版本4
操作运行阅读查看操作运行次数
获取操作运行
获取操作运行日志
列出操作运行
读写更新操作运行状态
顾问阅读获取性能顾问
获取安全顾问
运行项目顾问
分析配置阅读列出日志传输
读写创建日志排放
删除日志排水
更新日志消耗
日志阅读获取项目日志
获取项目所有日志
抓取项目指标
使用分析阅读获取项目功能组合统计
获取项目使用 API 次数
获取项目使用请求次数
平台 Webhooks读取获取发送
获取端点
列出交付
列出端点
读写创建端点
删除所有端点
删除端点
重新投递
发送测试事件
更新端点
注意本阅读获取注意本
列出注意本
读写创建注意本
删除注意本
更新注意本
数据库
备份阅读获取备份计划
列出所有备份
可读写恢复 PITR 备份
更新备份计划
数据库读取生成 TypeScript 类型
获取数据库元数据
获取数据库 openapi
获取 Postgres 升级资格1
获取 Postgres 升级状态1
获取项目配置5
获取项目 PgBouncer 配置
只读查询
运行查询
读写创建登录角色
删除登录角色
运行查询
升级 Postgres 版本4
数据库配置读取获取 postgres 配置
获取项目配置5
读写更新数据库密码
更新 postgres 配置
数据库 JIT阅读授权 JIT 访问
获取 JIT 访问权限
读写删除邀请外部 JIT 访问
删除 JIT 访问权限
邀请外部 JIT 访问
列出 JIT 访问
更新 JIT 访问权限
网络封禁阅读列出所有网络封禁
列出所有网络封禁详细信息
读写删除网络封禁
网络限制阅读获取网络限制
获取项目配置5
读写修补网络限制
更新网络限制
迁移阅读获取迁移
列出迁移历史
读写应用迁移
修补迁移
回滚迁移
更新或插入迁移
连接池读取获取池配置
可读写更新 pooler 配置
只读模式读取获取只读模式状态
读写暂时禁用只读模式
SSL 强制阅读获取项目配置5
获取 SSL 强制配置
可读写更新 SSL 强制配置
数据库 Webhooks可读写启用数据库 webhook
应用服务
API 密钥读取获取项目 API 密钥
获取项目 API 密钥
获取项目旧版 API 密钥
读写创建项目 API 密钥
删除项目 API 密钥
更新项目 API 密钥
更新项目旧版 API 密钥
API 密钥秘密读取获取项目 API 密钥6
获取项目 API 密钥6
身份验证配置阅读获取 SSO 提供商
获取认证服务配置
获取项目配置5
获取项目 TPA 集成
列出所有单点登录提供商
列出项目 TPA 集成
读写创建一个SSO提供商
创建项目 TPA 集成
删除 SSO 提供商
删除项目 TPA 集成
更新 SSO 提供商
更新认证服务配置3
身份验证签名密钥读取获取旧版签名密钥
获取项目签名密钥
获取项目签名密钥
读写创建传统签名密钥
创建项目签名密钥
移除项目签名密钥
更新项目签名密钥
数据 API 配置读取获取 PostgREST 服务配置
获取项目配置5
读写更新 PostgREST 服务配置
数据 API JWT 密钥读取获取 PostgREST 服务配置7
Edge Functions阅读获取一个函数
获取函数体
列出所有功能
读写批量更新功能
创建一个函数
删除一个功能
部署一个函数
更新一个函数
Edge 功能密钥阅读列出所有密钥
读写批量创建密钥
批量删除密钥
实时配置读取获取项目配置5
获取实时配置
读写关闭实时
实时更新配置
存储读取列出所有存储桶
存储配置读取获取项目配置5
获取存储配置
读写更新存储配置
计算阅读获取一个计算实例
列出所有计算实例
读写创建计算实例上传
删除一个计算实例
部署一个计算实例
基础设施与交付
开发分支阅读获取分支
获取分支配置
列出所有分支
读写创建分支
创建分支
删除分支
比较分支
合并一个分支
推送分支
重置分支
恢复分支
更新分支配置
生产分支阅读获取分支
获取分支配置
列出所有分支
读写创建分支
创建分支
删除分支
比较分支
禁用预览分支
合并一个分支
推送分支
重置分支
恢复分支
更新分支配置
自定义域名阅读获取主机名配置
读写激活自定义主机名
删除主机名配置
更新主机名配置
验证 DNS 配置
插件阅读列出项目插件
读写应用项目附加组件
移除项目插件
磁盘配置读取获取数据库磁盘
获取磁盘使用情况
获取项目磁盘自动扩容配置
读写修改数据库磁盘
只读副本可读写移除只读副本
设置一个只读副本
自定义子域阅读获取自定义子域配置
读写激活虚荣子域配置
检查自定义子域名可用性
停用虚荣子域配置
账户和组织
组织阅读列出所有组织
读写创建一个组织
项目(全账户)读取列出所有项目
SQL 代码片段(账户范围)读取获取片段
列出所有片段
组织设置阅读获取一个组织
获取组织权限
读写分配组织成员角色
OAuth 授权项目声明2
转移一个项目
组织成员阅读查看组织成员列表
列出组织成员
列出组织角色
读写创建组织邀请
删除组织邀请
组织项目阅读获取该组织的所有项目
列出组织的 GitHub 连接
列出组织项目
读写创建一个项目
平台 Webhooks(组织)读取获取传递
获取端点
列出交付
列出端点
读写创建端点
删除所有端点
删除端点
重新投递
发送测试事件
更新端点

MCP 工具 #

🌐 MCP tools

用于验证 MCP 服务器 的 scoped 个人访问令牌只能调用其授予权限解锁的工具。有关每个工具的功能,请参见 可用工具。

🌐 A scoped personal access token used to authenticate the MCP server can only call the tools its granted permissions unlock. See Available tools for what each tool does.

MCP 工具所需权限
apply_migration迁移(可读写)
confirm_cost无(始终可用)
create_branch开发分支(可读写)或 生产分支(可读写)
create_edge_function_secret边缘函数密钥(读写)和 边缘函数密钥(只读)
create_project组织项目(可读写)
delete_branch生产分支(可读写)或 开发分支(可读写)
deploy_edge_function边缘函数(可读写)
execute_sql数据库(只读)
generate_typescript_types数据库(只读)
get_advisors顾问(只读)
get_cost组织设置(只读)和 项目(全账户)(只读)
get_edge_function边缘功能(只读)
get_logs日志(只读)
get_organization组织设置(只读)
get_project项目设置(只读)
get_project_url项目设置(只读)
get_publishable_keysAPI 密钥(只读)
get_storage_config存储配置(只读)
list_branches开发分支(只读)或 生产分支(只读)
list_edge_functions边缘功能(只读)
list_extensions数据库(只读)
list_migrations迁移(只读)
list_organizations组织(只读)
list_projects项目(全账户)(只读)
list_storage_buckets存储(只读)
list_tables数据库(只读)
merge_branch生产分支(可读写)或 开发分支(可读写)
pause_project项目设置(可读写)
query_logs日志(只读)
rebase_branch生产分支(可读写)或 开发分支(可读写)
reset_branch生产分支(可读写)或 开发分支(可读写)
restore_project项目设置(可读写)
search_docs无(始终可用)
update_storage_config存储配置(可读写)

Footnotes#

  1. Requires Project Settings (Read) and Database (Read). ↩ ↩2 ↩3 ↩4

  2. Requires Organization Settings (Read-write) and Project Settings (Read-write). ↩ ↩2

  3. Requires Auth Config (Read-write) and Project Settings (Read-write). ↩ ↩2

  4. Requires Project Settings (Read-write) and Database (Read-write). ↩ ↩2

  5. Requires Database Config (Read), Database (Read), SSL Enforcement (Read), Network Restrictions (Read), Auth Config (Read), Data API Config (Read), Realtime Config (Read), and Storage Config (Read). ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8

  6. Requires API Keys (Read) and API Key Secrets (Read). ↩ ↩2

  7. Requires Data API Config (Read) and Data API JWT Secret (Read). ↩