Re: Create a trigger only for certain users

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Ezequiel Luis Pellettieri <ezequiel(dot)pellettieri(at)gmail(dot)com>, pgsql-sql(at)postgresql(dot)org
Subject: Re: Create a trigger only for certain users
Date: 2016-05-11 14:22:15
Message-ID: e2c2bbac-4279-f680-f4d6-e093de9ae611@aklaver.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-sql

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(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Michael Moore 2016-05-11 18:43:03 Re: python install defies all efforts and leaves programmer a broken shell of a man
Previous Message Ezequiel Luis Pellettieri 2016-05-11 14:12:08 Create a trigger only for certain users