Re: kind of RULE on SELECT depending on existence of a WHERE condition

From: Richard Huxton <dev(at)archonet(dot)com>
To: rawi <only4com(at)web(dot)de>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: kind of RULE on SELECT depending on existence of a WHERE condition
Date: 2010-03-01 13:38:54
Message-ID: 4B8BC36E.4040007@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On 01/03/10 12:16, rawi wrote:
>
>> Not quite the way you suggest. You could build a series of views with
>> the WHERE conditions built in to them, and grant permissions on those
>> though.
>
> Thank you very much for your help.
>
> Unfortunately is this not what I hoped...
> The permissions will be granted dynamic by the application out of the
> user-records and expressed in the WHERE flags.
> I'll need another approach...

You could write a set-returning function that takes either:
1. A list of conditions
2. The text for a WHERE clause

If it gets no conditions or a blank string, it returns nothing.

You will need to create the function with SECURITY DEFINER permissions,
as a user who can read from the table. Make sure the application cannot
read from the table and has to use the function.

--
Richard Huxton
Archonet Ltd

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Aron 2010-03-01 16:30:05 Re: Using new.id in the WHERE condition of one UPDATE inside ON INSERT rule
Previous Message Michael Gould 2010-03-01 13:25:30 placement of stored procedures and contrib modules