So, I am trying to log not just the postgres user but his ID from my table (for example) Person (person_id) when he calls functions.
So far, from what I can tell I can get almost every information I need from these system tables:
pg_stat_activitypg_stat_statementsif I activate it (but probably won't be able to due to some restrictions)
But the part that I can't seem to figure out is if I want to log the user's ID from (for example) the User table (user_id for example).
Basically I'd like to create a small table that will only house the last month's log, and I will insert into it.
- user_id (not system id, but from my own table)
- IP address
- timestamptz of when he called the function/query
- query he executed
My main issue is the user_id part, since the other 3 values already exist in the pg_stat_activity (client_addr, query_start, query)
If there's no easy way to make this happen, lets say I want to create a function that will somehow select the user_id based on parameters returned by pg_stat_activity, but I can't seem to figure out how I would do that. Hidden table parameters like tableoid, cmin, cmax, xmin, xmax, ctid don't help me here, at least I don't see how, maybe I missed something?
user_idassociated with your current session?INSERTstatement?