为什么前台读取 Supabase 会出现 401?RLS 应该怎么配置才安全?
401 通常是 RLS 拒绝了匿名读取,需为“公开 published 内容”单独放行 SELECT 策略,写入仍保持私有。
本页面为信息解释用途,不包含产品推广、报价、联系方式与营销引导。
AI 摘要
- 401=匿名无权限
- RLS需允许select
- 仅放行published
- 写入权限更严格
- 避免全表公开
核心要点
详细解释
可执行清单
- 新增select policy仅允许published
- 禁止匿名insert/update/delete
- 前台查询带status=published过滤
- 测试后再上线
常见误区
- 直接关闭RLS导致过度暴露
- 对所有状态放行select
- 前台不加status过滤
- 把service key放前端
适用范围与边界
适用于所有公开知识页;边界是媒体私有资源仍需单独鉴权,不应直接暴露敏感文件URL。