Re: Create a trigger only for certain users - Mailing list pgsql-sql

From Ezequiel Luis Pellettieri
Subject Re: Create a trigger only for certain users
Date
Msg-id CAGsySmg+qcK8j+XAWXzH34TydgWGeSjEX9K3J_n9hCVE_t19gg@mail.gmail.com
Whole thread Raw
In response to Re: Create a trigger only for certain users  (Adrian Klaver <adrian.klaver@aklaver.com>)
Responses Re: Create a trigger only for certain users  (Ezequiel Luis Pellettieri <ezequiel.pellettieri@gmail.com>)
List pgsql-sql
Thank you so very much Adrian for your answer. I'm still in 9.2 but I'll give it a try on 1 and 2 and let you know how it goes. 
The main goal for this trigger is to audit activity in certain tables for only 2 users in the database.
Cheers
Pelle.-

2016-05-11 11:22 GMT-03:00 Adrian Klaver <adrian.klaver@aklaver.com>:
On 05/11/2016 07:12 AM, Ezequiel Luis Pellettieri wrote:
Hi guys, I'm going to build a trigger on update for a few tables, but I
have to ignore updates for certain users. Is there a way to accomplish
this task?


A thought, assuming plpgsql:

1) Use session_user/current_user:
http://www.postgresql.org/docs/9.5/interactive/functions-info.html

2) In BEFORE trigger code:
http://www.postgresql.org/docs/9.5/interactive/plpgsql-trigger.html

test for the user and return NULL if there is a match:

"Row-level triggers fired BEFORE can return null to signal the trigger manager to skip the rest of the operation for this row (i.e., subsequent triggers are not fired, and the INSERT/UPDATE/DELETE does not occur for this row)."

Another thought, assuming Postgres 9.5+:

Use Row Level Security:

http://www.postgresql.org/docs/9.5/static/sql-createpolicy.html


Thanks in advance.

Regards.
Pelle.-

--
*
*
*
*
*
*


--
Adrian Klaver
adrian.klaver@aklaver.com



--

pgsql-sql by date:

Previous
From: Michael Moore
Date:
Subject: please ignore question 1 in my previous post
Next
From: "David G. Johnston"
Date:
Subject: Re: is this a good approach?