我需要在我的RDS Postgres数据库上设置一个事件触发器。最终,我需要在模式更改时收到通知。在普通的Postgres中(即非RDS实例),这很有效。然而,在运行以下代码的RDS中:
据我理解,RDS 上最特权的角色是 rds_superuser。我已经授予我的账户 rds_superuser(例如:
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 事件通知,但似乎没有订阅模式更改事件的选项。