postgresql – 在AWS-RDS中创建Postgres事件触发器

我的RDS Postgres数据库需要一个事件触发器.最终,我需要在架构发生变化时得到通知.在普通的Postgres(即非RDS实例)中,这很好用.但是,在RDS中运行以下内容:

在ddl_command_start上执行CREATE EVIG TRIGGER审计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授予我的帐户(例如,将rds_superuser授予某个用户;).但我仍然无法创建事件触发器.我知道rds_superuser与pg超级用户的角色不同(可以通过运行:SHOW is_superuser或SELECT * FROM pg_user来确认).
我也理解为什么RDS可能会锁定真正的超级用户权限,但如果我无法访问事件触发器,这似乎是一个非常重要的限制.我错过了什么吗?是否可以在RDS上的Postgres中设置事件触发器?如果没有,是否有任何替代模仿相同的功能?我知道RDS事件通知,但似乎没有任何选项来订阅架构更改事件.

最佳答案
我知道这是一个老问题,但现在似乎得到了支持.

PostgreSQL versions 9.4.9 and later and version 9.5.4 and later
support event triggers, and Amazon RDS supports event triggers for
these versions. The master user account can be used to create, modify,
rename, and delete event triggers. Event triggers are at the DB
instance level, so they can apply to all databases on an instance. For
more information about PostgreSQL event triggers on Amazon RDS, see
Event Triggers for PostgreSQL on Amazon RDS.

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.EventTriggers

转载注明原文:postgresql – 在AWS-RDS中创建Postgres事件触发器 - 代码日志