Мне нужно событие триггер на моей базе данных RDS Postgres. В конечном счете, мне нужно получать уведомления о каждом изменении схемы. В обычном старом Postgres (т. Е. Не-RDS-экземпляре) это работает отлично. Тем не менее, в RDS работает следующим образом:Создать событие запуска Postgres в AWS-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 может блокировать истинные привилегии суперпользователя, но это кажется довольно значительным ограничением, если я не могу получить доступ к триггерам событий. Я что-то упускаю? Можно ли установить триггер события в Postgres на RDS? Если нет, есть ли альтернатива имитировать те же функциональные возможности? Я знаю уведомления о событиях RDS, но, похоже, нет возможности подписываться на события изменения схемы.
же проблема здесь:/вы нашли какие-либо решения? – arod
@arod мои исследования в сообществе (включая amazon) не нашли вариантов. Хотя я не нашел ничего конкретного, говоря, что это невозможно в RDS. Кажется, вам нужно, чтобы суперпользователь pg установил триггеры событий pg. В RDS это невозможно (только rds_superuser). Я был вынужден пойти другим путем. – scottjustin5000
Какой маршрут вы взяли? – arod