Re: Разделение прав
От | Andrey N. Oktyabrski |
---|---|
Тема | Re: Разделение прав |
Дата | |
Msg-id | 43F1EE8D.30806@antora.ru обсуждение исходный текст |
Ответ на | Разделение прав ("Andrey N. Oktyabrski" <ano@antora.ru>) |
Ответы |
Re: Разделение прав
|
Список | pgsql-ru-general |
Andrey N. Oktyabrski wrote: > Здравствуйте. > > Стоит такая задача: > есть несколько таблиц, записи в них имеют признак типа "такой-то юзер > постгреса имеет право на 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? Да, мысль пришла... Может ли кто-нибудь подсказать, в каком месте хачить исходники постгреса на предмет разрешения update без прав на select? С целью соорудить патч и попытаться попросить Олега закоммитить его :-) Если это, конечно, politically correct solution.
В списке pgsql-ru-general по дате отправления: