Ich brauche ein Ereignis Trigger auf meiner RDS Postgres-Datenbank. Letztendlich muss ich benachrichtigt werden, wenn sich das Schema ändert. In einfachen alten Postgres (d. H. Einer Nicht-RDS-Instanz) funktioniert das gut. die folgenden in RDS läuft jedoch:Erstellen Postgres Event Trigger in AWS-RDS
CREATE EVENT TRIGGER audit ON ddl_command_start EXECUTE PROCEDURE stat_audit();
Ergebnisse in:
ERROR: permission denied to create event trigger
HINT: Must be superuser to create an event trigger.
Soweit ich die privilegierte Rolle auf RDS verstehen ist rds_superuser. Ich habe rds_superuser meinem Konto zugewiesen (z. B. grant rds_superuser to someuser;
). Trotzdem kann ich den Ereignisauslöser nicht erstellen. Ich verstehe, dass der rds_superuser nicht genau dieselbe Rolle wie der pg-Superuser ist (was entweder durch Ausführen von: SHOW is_superuser
oder SELECT * FROM pg_user
bestätigt werden kann). Ich verstehe auch, warum RDS wahre Superuser-Privilegien sperren kann, aber es scheint eine ziemlich signifikante Einschränkung zu sein, wenn ich nicht auf Ereignis-Trigger zugreifen kann. Fehle ich etwas? Ist es möglich, einen Event-Trigger in Postgres auf RDS zu setzen? Wenn nicht, gibt es eine Alternative, die gleiche Funktionalität nachzuahmen? Ich kenne RDS-Ereignisbenachrichtigungen, aber es scheint keine Option zum Abonnieren von Schemaänderungsereignissen zu geben.
gleiche Problem hier:/haben herausgefunden, Sie eine Lösung? – arod
@arod meine Forschung in der Gemeinschaft (einschließlich Amazon) fand keine Optionen. Ich habe nichts Konkretes gefunden, was in RDS nicht möglich ist. Es scheint, dass Sie einen pg-Super-User benötigen, um pg-Event-Trigger zu setzen. In RDS ist dies nicht möglich (nur rds_superuser). Ich war gezwungen, einen anderen Weg zu gehen. – scottjustin5000
Welchen Weg haben Sie genommen? – arod