2016-03-22 21 views
5

イベントトリガがRDS Postgresデータベースに必要です。最終的には、スキーマが変更されるたびに通知を受ける必要があります。普通の古いPostgres(つまり非RDSインスタンス)ではうまく動作します。私の知る限りは、RDS上で最も特権的役割はrds_superuserであることを理解としてAWS-RDSでPostgresイベントトリガーを作成

ERROR: permission denied to create event trigger 
HINT: Must be superuser to create an event trigger. 

:中

CREATE EVENT TRIGGER audit ON ddl_command_start EXECUTE PROCEDURE stat_audit();

結果:ただし、RDSに次のように実行されています。私は自分のアカウントにrds_superuserを与えました(例えば、grant rds_superuser to someuser;)。しかし、私はまだイベントトリガーを作成することはできません。私は、rds_superuserがpgスーパーユーザーと同じ正確な役割ではないことを理解しています(これは、実行中のいずれかで確認できます:SHOW is_superuserまたはSELECT * FROM pg_user)。 RDSが真のスーパーユーザー権限をロックダウンする理由も理解していますが、イベントトリガーにアクセスできない場合はかなり大きな制限のようです。何か不足していますか? RDSのPostgresでイベントトリガを設定することは可能ですか?そうでない場合は、同じ機能を模倣する代替手段はありますか?私はRDSイベント通知を認識していますが、スキーマ変更イベントを購読するオプションはないようです。

+0

同じ問題:/何か解決策を見つけましたか? – arod

+0

@arodコミュニティでの私の研究(アマゾンを含む)では選択肢が見つかりませんでした。私は何も見つけられませんが、RDSではこれが不可能であると具体的に言っています。 pgイベントトリガを設定するには、スーパーユーザが必要です。 RDSではこれは不可能です(rds_superuserのみ)。私は別のルートに行くことを余儀なくされました。 – scottjustin5000

+0

あなたはどんなルートをとったのですか? – arod

答えて

1

これは古い質問ですが、これは今サポートされているようです。

PostgreSQLのバージョン9.4.9以降およびバージョン9.5.4以降 サポートイベントトリガ、とAmazon RDSイベントが これらのバージョンのためのトリガをサポートしています。マスターユーザーアカウントを使用して、 の名前の変更、作成、変更、およびイベントトリガーの削除を行うことができます。イベントトリガーはDB インスタンスレベルにあるため、インスタンス上のすべてのデータベースに適用できます。 Amazon RDSのPostgreSQLイベントトリガの詳細については、Amazon RDSのPostgreSQLのイベントトリガを参照してください。ここ

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