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

如何在Supabase触发器中访问受保护的auth.users表?

解决Supabase触发器无法访问auth.users表的问题

Supabase控制台的触发器UI默认只展示public模式下的表,auth模式的表(比如auth.users)属于系统受保护表,无法通过UI直接选择,必须通过SQL编辑器手动创建触发器。具体操作步骤如下:

  • 打开Supabase控制台的SQL编辑器,切换到目标项目
  • 创建触发器处理函数,示例逻辑为同步用户数据到public.profiles表(可根据需求自定义逻辑):
CREATE OR REPLACE FUNCTION handle_user_change()
RETURNS TRIGGER AS $$
BEGIN
  -- 处理INSERT事件:新增用户时同步到profiles表
  IF TG_OP = 'INSERT' THEN
    INSERT INTO public.profiles (id, email) VALUES (NEW.id, NEW.email);
  -- 处理UPDATE事件:更新用户信息时同步更新
  ELSIF TG_OP = 'UPDATE' THEN
    UPDATE public.profiles SET email = NEW.email WHERE id = NEW.id;
  END IF;
  RETURN NEW;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
  • 创建触发器关联auth.users表,指定触发时机和执行函数:
CREATE TRIGGER on_user_change
AFTER INSERT OR UPDATE ON auth.users
FOR EACH ROW EXECUTE FUNCTION handle_user_change();
  • (可选)如果需要让认证用户访问auth.users的基础数据,添加权限配置:
GRANT USAGE ON SCHEMA auth TO authenticated;
GRANT SELECT ON auth.users TO authenticated;

执行完以上SQL后,触发器就会监听auth.users表的插入和更新操作,按照定义的逻辑执行后续处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 03:03:11