Re: How to restrict select from table with external validation?
| От | Sean Davis |
|---|---|
| Тема | Re: How to restrict select from table with external validation? |
| Дата | |
| Msg-id | 44B38FEE.1010404@mail.nih.gov обсуждение |
| Ответ на | How to restrict select from table with external validation? ("Vladimir A. Petrov" <vap@infopac.ru>) |
| Ответы |
Re: How to restrict select from table with external validation?
|
| Список | pgsql-novice |
Vladimir A. Petrov wrote:
> Hello!
>
> I have table like
>
> CREATE TABLE stats
> (
> username varchar(256) NOT NULL,
> "time" int8 NOT NULL,
> duration int4 NOT NULL,
> phonenumber varchar(20) NOT NULL,
> and so on ...
> )
>
> I have function like
>
> CREATE OR REPLACE FUNCTION auth("varchar", "varchar")
> RETURNS bool AS '
> ...
> ' LANGUAGE 'plperlu' VOLATILE;
>
> where first argument is username and second is password. This function
> returns true if username and password validated successfully or false
> otherwise.
>
> I have a user which must do only selects from table "stats".
>
> My questions is how to restrict access on table "stats" to this user in
> way where this user will be able to select only limited set of columns
> from table "stats" and only rows with usernames for which this user
> knows correct passwords validated via auth() function call?
You could create another function that returns a set of rows from stats.
That function could check the auth function and then select only those
rows that are appropriate. In other words, look at a set-returning
function that returns a set of rows that are appropriate for the given user.
Sean
В списке pgsql-novice по дате отправления: