我的 RDS Postgres 数据库需要一个事件触发器。最终,每当架构发生更改时,我都需要得到通知。在普通的旧 Postgres(即非 RDS 实例)中,这可以正常工作。但是,在 RDS 中运行以下内容:
CREATE EVENT TRIGGER audit ON ddl_command_start EXECUTE PROCEDURE stat_audit();
结果是:
ERROR: permission denied to create event trigger
HINT: Must be superuser to create an event trigger.
据我了解,RDS 上最具特权的角色是 rds_superuser。我已将 rds_superuser 授予我的帐户(例如grant rds_superuser to someuser;
)。但是我仍然无法创建事件触发器。我确实理解 rds_superuser 与 pg 超级用户的角色不同(可以通过运行:SHOW is_superuser
或来确认SELECT * FROM pg_user
)。我也理解为什么 RDS 可能会锁定真正的超级用户权限,但如果我无法访问事件触发器,这似乎是一个非常重要的限制。我错过了什么吗?是否可以在 RDS 上的 Postgres 中设置事件触发器?如果没有,是否有任何替代方法可以模仿相同的功能?我知道 RDS 事件通知,但似乎没有任何选项可以订阅架构更改事件。