Supabase无法创建/编辑表:pgsodium_trg_mask_update权限错误求助
解决Supabase免费版创建/编辑表时的pgsodium触发器权限问题
问题分析
报错Failed to create pg.columns: must be the owner of event trigger pgsodium_trg_mask_update源于Supabase Vault关联的pgsodium扩展事件触发器权限冲突,免费版用户可能被自动启用相关组件但未获得对应操作权限。
解决步骤
1. 修改触发器所有者
在Supabase SQL编辑器中执行命令,将触发器所有者改为数据库默认角色(通常为postgres):
ALTER EVENT TRIGGER pgsodium_trg_mask_update OWNER TO postgres;
2. 禁用并删除触发器(若修改所有者无效)
先禁用触发器再删除,规避权限限制:
ALTER EVENT TRIGGER pgsodium_trg_mask_update DISABLE; DROP EVENT TRIGGER pgsodium_trg_mask_update;
3. 卸载pgsodium扩展(可选)
若触发器操作后仍有异常,尝试移除相关扩展:
DROP EXTENSION IF EXISTS pgsodium;
4. 重置数据库权限(极端情况)
以上操作无效时,执行权限重置命令(替换你的数据库名称为项目实际数据库名,可在数据库设置页查看):
GRANT ALL PRIVILEGES ON DATABASE "你的数据库名称" TO postgres;
验证
完成操作后回到表编辑器,尝试创建或编辑表,确认功能恢复正常。
内容的提问来源于stack exchange,提问作者Charles Kasasira
相关产品推荐
相关产品推荐

