Ich bin dabei, ein Audit-System in meiner Datenbank zu implementieren und bin auf der Suche nach dem effektivsten Weg, dies zu tun.PostgreSql Ereignis-Trigger für die Überwachung
Ich habe das Wiki gelesen und recherchiert.
Es ist dieses Beispiel: https://wiki.postgresql.org/wiki/Audit_trigger Und auch dies: https://wiki.postgresql.org/wiki/Audit_trigger_91plus
In den aufgeführten Beispielen Sie für jede Tabelle einen Trigger erstellen haben (ein bisschen redudant).
Wie auch immer, mit Postgres 9.3+ haben wir die Möglichkeit von Ereignisauslösern, wo wir auf spezielle Ereignisse wie Erstellen, Ändern oder Löschen von Tabellen reagieren können.
Eine wäre die optimale Lösung sein:
create event trigger UpdateTables
on ddl_command_end
when tag in ('insert ', 'update ')
execute procedure DoAudit();
jedoch die zurückgibt:
ERROR: filter value "insert " not recognized for filter variable "tag" SQL Status:42601
Ich frage mich, ob wir auch, auf Einsatz reagieren Update Ereignisse mit Ereignis-Triggern und Verwendung dieser einzelne Auslöser für alle Auditing?
Sie müssen in der Tat einen Trigger für jede Tabelle erstellen, aber alle Trigger können denselben Trigger _function_ (wieder) verwenden. –