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 по дате отправления: