Re: user-based query white list
От | Grzegorz Jaskiewicz |
---|---|
Тема | Re: user-based query white list |
Дата | |
Msg-id | F0CE3C62-D0E1-4993-AC03-3108399FCAF0@pointblue.com.pl обсуждение исходный текст |
Ответ на | Re: user-based query white list (Andrew Chernow <ac@esilo.com>) |
Ответы |
Re: user-based query white list
|
Список | pgsql-hackers |
On 2008-12-06, at 18:30, 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). 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? I use views to simplify code. Say you have a simple join, with one WHERE. You omit the WHERE in view, and leave it like that. Than just select foo1, foo2 from VIEW WHERE boo1=foo1 and foo3 <> '123'; Postgresql is smart enough, to run it as one query (as oppose to mysql), so the code is simpler, everybody's happy. If you want to continue on that discussion, I suggest we move it to pg- general.
В списке pgsql-hackers по дате отправления: