本页内容
图解流程图
Supabase身份 → 策略 → 按角色检查
01USING 与 WITH CHECK 负责写入过程的不同环节。
02修改归属 ID 本身就是需要验证的权限场景。
03管理密钥的结果不能证明普通用户隔离有效。
写 SQL 前先定义访问矩阵
先列出数据表、归属列、操作与角色。Supabase Auth 提供身份,而 RLS 决定每项操作可访问的行;团队成员关系需要不同于个人归属的模型。
区分已有行与新值校验
USING 控制行可见性与访问,WITH CHECK 校验插入或修改后的行值。auth.uid() 返回请求用户,未认证时为空;修改归属列需要单独考虑。
以真实请求身份验证
用用户 A、用户 B 和未登录请求测试读写,包含伪造归属 ID,并通过应用普通客户端路径验证。高权限 secret key 的结果不能证明普通用户隔离。
你可能还想知道
有登录页面就能保护每一行吗?
不能。认证识别用户,授权策略决定数据访问。
为什么不能只用管理密钥测试?
管理 secret key 请求在文档说明的条件下可绕过 RLS,因此应使用目标用户角色和令牌验证隔离。
资料出处
本文依据引用的文档与作者来源整理,vibeforthat 未对本文进行独立安装或端到端产品实测。