You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Supabase表更新策略失效求助:已创建策略仍无法执行.update()

Supabase RLS更新策略失效问题修复

针对你遇到的stage_attachment_documents表更新策略无效的问题,可通过以下步骤排查修复:

  • 补充策略的USING子句
    你当前的更新策略仅定义了WITH CHECK (true),但RLS更新策略需要同时通过USING指定哪些行允许被更新(控制行可见性),WITH CHECK确保更新后的行符合规则。修改策略如下:

    -- 先删除旧策略
    DROP POLICY IF EXISTS "Updates can be performed by users authenticated." ON public.stage_attachment_documents;
    
    -- 创建包含USING和WITH CHECK的新策略
    CREATE POLICY "Authenticated users can update stage_attachment_documents" 
    ON public.stage_attachment_documents
    FOR UPDATE TO authenticated
    USING (true)
    WITH CHECK (true);
    

    如果需要更精细的权限控制(比如仅允许用户更新自己创建的行),可将USING (true)替换为USING (user_id = auth.uid())(假设表中有user_id字段关联用户ID)。

  • 验证用户认证状态
    确认执行更新操作的用户已通过Supabase认证,处于authenticated角色。匿名用户无法匹配该策略,需确保客户端代码中用户已完成登录流程。

  • 确认角色表权限
    确保authenticated角色拥有表的UPDATE权限,执行以下语句补全权限:

    GRANT UPDATE ON public.stage_attachment_documents TO authenticated;
    
  • 重新验证策略
    执行完上述操作后,重新尝试.update()方法,同时可通过Supabase控制台的「策略」面板查看策略是否正常生效。

内容的提问来源于stack exchange,提问作者Richi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 06:55:12