HI, The answer to the question is that you need to use session_user instead of user or current_user.
Cheers, Alex > On 9 Feb 2019, at 10:08, Alexander Reichstadt <l...@me.com> wrote: > > Hi, > > I setup trigger functions for logging, and while they do work and get > triggered, the current_user always insert “postgres” even when > updates/deletes/inserts are caused by users of another name. > > How do I get it to use the name that caused the update? It seems current_user > is the trigger’s user, so the server itself in some way. This is on PG10 > > Here the function: > BEGIN > > IF TG_OP = 'INSERT' > > THEN > > INSERT INTO logging (tabname, schemaname, who, > operation, new_val) > > VALUES (TG_RELNAME, TG_TABLE_SCHEMA, > current_user, TG_OP, row_to_json(NEW)); > > RETURN NEW; > > ELSIF TG_OP = 'UPDATE' > > THEN > > INSERT INTO logging (tabname, schemaname, who, > operation, new_val, old_val) > > VALUES (TG_RELNAME, TG_TABLE_SCHEMA, > current_user, TG_OP, > > row_to_json(NEW), row_to_json(OLD)); > > RETURN NEW; > > ELSIF TG_OP = 'DELETE' > > THEN > > INSERT INTO logging (tabname, schemaname, operation, > who, old_val) > > VALUES (TG_RELNAME, TG_TABLE_SCHEMA, TG_OP, > current_user, row_to_json(OLD)); > > RETURN OLD; > > END IF; > > END; > > > > Cheers, > Alex