Разделение прав

Поиск
Список
Период
Сортировка
От Andrey N. Oktyabrski
Тема Разделение прав
Дата
Msg-id 43F1BB57.8070608@antora.ru
обсуждение исходный текст
Ответы Re: Разделение прав  (Sergey Suleymanov <solt@eatpbank.ru>)
Re: Разделение прав  ("Andrey N. Oktyabrski" <ano@antora.ru>)
Список 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 по дате отправления:

Предыдущее
От: Oleg Bartunov
Дата:
Сообщение: Re: безопасность
Следующее
От: Sergey Suleymanov
Дата:
Сообщение: Re: Разделение прав