Разделение прав - Mailing list pgsql-ru-general

From Andrey N. Oktyabrski
Subject Разделение прав
Date
Msg-id 43F1BB57.8070608@antora.ru
Whole thread Raw
Responses Re: Разделение прав  (Sergey Suleymanov <solt@eatpbank.ru>)
Re: Разделение прав  ("Andrey N. Oktyabrski" <ano@antora.ru>)
List pgsql-ru-general
Здравствуйте.

Стоит такая задача:
есть несколько таблиц, записи в них имеют признак типа "такой-то юзер
постгреса имеет право на select/update этой записи", надо сделать
как-то, чтобы юзер не мог сделать то, что ему запрещено.

Я планировал сделать это так:
create table _tbl (...);
create view tbl as select * from _tbl where owner = session_user();
revoke all on tbl from <юзер>;
grant select on tbl to <юзер>;
revoke all on _tbl from <юзер>;
grant insert, update, delete on _tbl to <юзер>;

Но тогда
update _tbl set fld = 123 where id = 21;
не работает - постгрес говорит, что нет прав. grant select on _tbl to
<юзер> спасает, но я не хочу чтобы юзер читал из таблицы, для этого
сделано представление-подмножество таблицы.

Как выйти из положения? Или есть какое-то решение без view?

pgsql-ru-general by date:

Previous
From: Oleg Bartunov
Date:
Subject: Re: безопасность
Next
From: Sergey Suleymanov
Date:
Subject: Re: Разделение прав