On Sat, 2008-12-06 at 13:30 -0500, Andrew Chernow wrote:
> Grzegorz Jaskiewicz wrote:
> > 
> > On 2008-12-06, at 18:21, Andrew Chernow wrote:
> > 
> >> Looking for a way to limited a user to a specific set of queries.  I 
> >> don't think this can be done right now ... or can it?  Has this 
> >> feature request surfaced in the past?
> >>
> >> I currently need this as an extra security measure for a libpq client 
> >> app (want to block arbitrary queries from malicious attackers).  The 
> >> easiest way I found was to add some query_string checks into 
> >> backend/tcop/postgres.c for the 'Q' and 'P' commands in 
> >> PostgresMain().  Seems to work just fine.  If it doesn't match, I 
> >> issue an ereport FATAL since that is seen as a "malicious query 
> >> execution attempt".
> >>
> >> I think it is something rather simple to design/implement (probably 
> >> use a table of user allowed queries, support regex matches, etc.. 
> >> loaded at session startup and SIGHUP).
> > 
> > Can it be done with views, and adjusting permissions so user is only 
> > allowed to use few views ??
> > 
> > 
> 
> Not sure.  The client I am working on only calls functions, small API to 
> interact with (no knowledge of views or tables).  

Then grant access to those functions only.

> Even if that were not the 
> case, would views stop a client from sending in other queries, like "SELECT 
> 1+1" 
> or something that could bog down the server?

Use statement_timeout GUC to prevent bogging

------------
Hannu




-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to