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 イベント通知については認識していますが、スキーマ変更イベントをサブスクライブするオプションがないようです。