verschiedene Clients melden sich mit dem gleichen Datenbankbenutzer an (also CURRENT_USER scheidet aus)
ist es möglich, beim Auslösen eines Triggers, eindeutige Informationen des Clients zu ermitteln (im Sinne von, wer hat den Datensatz geändert/gelöscht)
Denkansätze:
läuft der Trigger in der gleichen Session, in der der Trigger ausgelöst wird?
kann man beim Login irgendwelche Infos hinterlegen (Hostname, OS-Username)
könnte die PID aus pg_stat_activity helfen
An den Betriebssystem Benutzer des Client kommt man in Postgres nicht ran.
Bitte beachte, dass der “application_name” vom Client gesetzt wird und alles Mögliche enthalten kann. Für ein auditing ist das meiner Meinung nach nicht geeignet.
Das einzige was zuverlässig ist, ist die IP Adresse des Client.
Danke für die Antworten
kann man davon ausgehen, dass jede Session seine eigene Prozess-ID hat (Connection Pool, usw.)
bei Verbindungen von einem Terminalserver hat mal leider mit der IP-Adresse wieder ein Problem…
das ist etwas kompliziert … eine Abfrage kann z.B. via mehrerer worker-prozesse ablaufen, in dem Fall kannst Du die worker in pg_stat_activity sehen, aber ohne die client-ip.