2016-03-22 3 views
5

Мне нужно событие триггер на моей базе данных 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, но, похоже, нет возможности подписываться на события изменения схемы.

+0

же проблема здесь:/вы нашли какие-либо решения? – arod

+0

@arod мои исследования в сообществе (включая amazon) не нашли вариантов. Хотя я не нашел ничего конкретного, говоря, что это невозможно в RDS. Кажется, вам нужно, чтобы суперпользователь pg установил триггеры событий pg. В RDS это невозможно (только rds_superuser). Я был вынужден пойти другим путем. – scottjustin5000

+0

Какой маршрут вы взяли? – arod

ответ

1

Я знаю, что это старый вопрос, но сейчас это поддерживается.

PostgreSQL версия 9.4.9 и более поздние версии и версии 9.5.4 и более поздние версии триггера поддержки событий и Amazon RDS поддерживает триггера событий для этих версий. Основная учетная запись пользователя может использоваться для создания, изменения, переименования и удаления триггеров событий. Триггеры событий находятся на уровне экземпляра DB , поэтому они могут применяться ко всем базам данных экземпляра. Для больше информации о триггерах событий PostgreSQL на Amazon RDS, см. Триггеры событий для PostgreSQL на Amazon RDS.

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