内容提要
Supabase 推出个人访问令牌(PAT)权限范围功能,可将令牌限定为仅访问特定项目及所需权限,避免工具获得账户全部权限。仪表板新建令牌默认受限,目前近九成令牌已受限。令牌权限不超过用户自身权限,用户失去访问权时令牌同步失效。该功能支持 Management API、MCP 服务器和 CLI,现有令牌不受影响。
延伸解读
令牌权限的边界与继承逻辑
文章强调,令牌权限严格受限于用户自身权限。每次请求都会同时评估令牌范围和用户当前角色。这意味着,即使令牌被授予了某项权限,若用户自身失去该权限(如离开组织或项目数据库读权限被收回),令牌也会同步失效;用户权限恢复后,令牌自动恢复可用。创建令牌时,仪表板会标记用户当前角色不具备的权限,这类权限可被添加但无法使用,直到用户角色包含它。
不同工具下的权限错误表现
文章指出,权限不足时不同接口的反馈方式不同。Management API 返回 403,并在 missing_permissions 字段中指明缺失的权限;若请求的项目超出令牌范围,则返回普通 403。MCP 服务器在工具执行前检查权限,拒绝时返回工具错误;例如仅有数据库读权限时,执行 SQL 写入会得到 Postgres 权限错误而非 403。CLI 方面,依赖 SUPABASE_DB_PASSWORD 的数据库命令会绕过令牌权限,而 supabase link 需要令牌具备项目设置、API 密钥及密钥秘密的读权
现有令牌的兼容与迁移建议
现有令牌不受新功能影响,没有弃用或关停日期,会一直有效直到过期或被删除。仪表板中拥有完整账户访问权限的令牌会带有“Legacy”徽章,且仍保留“创建旧版令牌”选项。文章建议为下一个集成创建限定项目和所需权限的令牌;若现有集成已使用全权限令牌,可创建替代令牌并替换。若缺少所需权限或创建流程不适用,可提交支持工单。
Q&A
Supabase 个人访问令牌的权限范围功能是什么?
该功能允许将个人访问令牌限定为仅访问特定项目及所需权限,避免工具获得账户全部权限。令牌权限不超过用户自身权限,用户失去访问权时令牌同步失效。
如何为编码代理创建一个仅能读取数据库的令牌?
在仪表板访问令牌页面,选择单个项目作为资源,权限预设选“无访问”,然后开启“数据库”读取权限,设置过期时间,复查时确认“数据库读取”覆盖所需端点,创建后复制令牌值。
令牌的权限会超过我自己的账户权限吗?
不会。令牌权限严格受限于你的用户账户,每次请求都会同时评估令牌范围和你的当前角色。如果你失去某个项目的访问权,令牌也会同步失效;恢复后令牌重新生效。
现有的个人访问令牌需要立即更换吗?
不需要。现有令牌继续有效直到过期或删除,没有弃用或停用日期。仪表板中全账户访问的令牌会标记为“Legacy”,仍可创建旧版令牌。
受限令牌在 Management API 和 MCP 服务器中如何使用?
受限令牌以 sbp_fc 开头,使用标准 bearer 认证。Management API 请求缺少权限时返回 403 并在 missing_permissions 字段指明;MCP 服务器每个工具执行前检查权限,拒绝时返回工具错误。
创建令牌时如何评估风险?
复查屏幕会显示令牌的访问范围,可展开权限查看具体端点,并给出风险横幅评级(低、中、高),基于令牌的覆盖范围和写权限组合。