【发布时间】:2021-07-26 00:37:59
【问题描述】:
我需要为我的表禁用触发器和约束/外键关系以进行迁移。我正在使用 flyway 进行迁移。
所以我想创建除超级用户之外的其他用户。并让新用户能够禁用/启用给定架构的所有触发器/约束。
所以我尝试了这个:
CREATE USER "MY_USER" WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE postgres to "MY_USER";
create schema "MY_SCHEMA";
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA "MY_SCHEMA" TO "MY_USER";
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA "MY_SCHEMA" TO "MY_USER";
GRANT ALL PRIVILEGES ON SCHEMA "MY_SCHEMA" TO "MY_USER";
但是当我使用 MY_USER 并尝试运行此脚本时:
ALTER TABLE "MY_SCHEMA".TBLTABLE
DISABLE TRIGGER ALL;
我收到错误:权限被拒绝:“RI_ConstraintTrigger_c_16434”是系统触发器。
当我使用超级用户尝试这个脚本时,我可以运行它。但我不能用我创建的用户运行它。 有什么建议吗?
【问题讨论】:
标签: sql postgresql flyway