Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Непонятка с ролями / 6 сообщений из 6, страница 1 из 1
29.10.2018, 14:30
    #39724520
matty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятка с ролями
Всем привет!

Есть следующая ситуация.

w1 - роль
r1 - роль
writer - групповая роль, в которой сидит w1.
reader - групповая роль с r1.

у нас есть
revoke all на public от public
grant all для writer на puplic
grant usage для reader на public

дальше делаем дефолтовые привилегии на роль writer типа select на все таблицы для reader

что смущает.
если мы из под роли writer создадим таблицу, роль r1 сможет ее прочитать, это понятно.
если мы создадим табличку из под w1, r1 скажет, что у нее нет прав на чтение. Проблему не решает даже смена владельца таблицы с w1 на writer.

Вопрос то простой, почему не прокидываются гранты на дочерок writer?
...
Рейтинг: 0 / 0
29.10.2018, 16:16
    #39724613
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятка с ролями
matty,

Я так понимаю вы ищете вот это: https://www.postgresql.org/docs/current/static/sql-alterdefaultprivileges.html
Дефолтные гранты при создании объектов пользователем.

А в целом сделано специально. Если нет дефолтных грантов, то своими объектами может пользоваться только сам пользователь. Не зависит от прав на schema.
...
Рейтинг: 0 / 0
29.10.2018, 16:21
    #39724618
Павел Лузанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятка с ролями
mattyВопрос то простой, почему не прокидываются гранты на дочерок writer?
Так и ответ простой.
В ALTER DEFAULT PRIVILEGES это не поддерживается.
...
Рейтинг: 0 / 0
29.10.2018, 16:41
    #39724623
matty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятка с ролями
Павел ЛузановmattyВопрос то простой, почему не прокидываются гранты на дочерок writer?
Так и ответ простой.
В ALTER DEFAULT PRIVILEGES это не поддерживается.

Т.е. ALTER DEFAULT PRIVILEGES действует только на ту роль, что явно указана, несмотря на то, что она может быть групповой с кучей других ролей, входящих в нее. И на все эти входящие роли привилегии не распространяются? Т.е. в нашем случае при создании таблицы в w1, r1 не получает гранта на select, даже несмотря на то, что w1 находится во writer?
Хорошо, тогда почему при смене владельца не срабатывают дефолтные привилегии? Я почему-то думал, что пг полагается на владельца объекта.
...
Рейтинг: 0 / 0
29.10.2018, 17:34
    #39724658
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятка с ролями
mattyТ.е. ALTER DEFAULT PRIVILEGES действует только на ту роль, что явно указана, несмотря на то, что она может быть групповой с кучей других ролей, входящих в нее. И на все эти входящие роли привилегии не распространяются? Т.е. в нашем случае при создании таблицы в w1, r1 не получает гранта на select, даже несмотря на то, что w1 находится во writer?
Хорошо, тогда почему при смене владельца не срабатывают дефолтные привилегии? Я почему-то думал, что пг полагается на владельца объекта.

Привилегии по умолчанию срабатывают при создании нового объекта и ТОЛЬКО при создании. При этому они действуют ТОЛЬКО на ту роль что явно указана.
default привилегии - просто простой шаблон вида выдать указанные права на обьект при его создании такой то ролью и все, не больше и не меньше. Вы их пытаетесь к чему то явно не предназначенному прикрутить.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
29.10.2018, 19:34
    #39724704
matty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятка с ролями
Maxim BogukmattyТ.е. ALTER DEFAULT PRIVILEGES действует только на ту роль, что явно указана, несмотря на то, что она может быть групповой с кучей других ролей, входящих в нее. И на все эти входящие роли привилегии не распространяются? Т.е. в нашем случае при создании таблицы в w1, r1 не получает гранта на select, даже несмотря на то, что w1 находится во writer?
Хорошо, тогда почему при смене владельца не срабатывают дефолтные привилегии? Я почему-то думал, что пг полагается на владельца объекта.

Привилегии по умолчанию срабатывают при создании нового объекта и ТОЛЬКО при создании. При этому они действуют ТОЛЬКО на ту роль что явно указана.
default привилегии - просто простой шаблон вида выдать указанные права на обьект при его создании такой то ролью и все, не больше и не меньше. Вы их пытаетесь к чему то явно не предназначенному прикрутить.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru

Ну вот теперь стало понятно, почему смена владельца не решает проблему. Благодарю!
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Непонятка с ролями / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]