Проблемы с GRANT

Добрый день, посетители форума. Перейду сразу к делу.
Пытаюсь настроить права доступа для пользователей. Проблема сейчас заключается в следующем: я пытаюсь создать несколько групповых ролей и несколько обычных ролей входа, а затем отнести пользователей к каким-либо групповым ролям.
К примеру, я создал пользователя admin и группу administrators. В группе administrators я задал права суперпользователя со всеми возможностями. Роли "admin" я никаких прав не дал. Затем я выполнил запрос:

GRANT administrators TO admin;
Запрос выполнился успешно, тем не менее я ничего не могу выполнять от роли admin, что по идее должен мочь выполнять администратор.
Если нажать на роль admin (в программе pgAdmin) то в окне "Панель SQL" будет следующий код:
CREATE ROLE admin LOGIN
  ENCRYPTED PASSWORD '...'
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT administrators TO admin;
т.е. получается, что admin действительно входит в группу administrators
Если нажать на групповую роль administrators, то в окне "Панель SQL" будет следующий код:
CREATE ROLE administrators
  SUPERUSER INHERIT CREATEDB CREATEROLE REPLICATION;
т.е. получается, что administrators действительно обладает правами суперпользователя.
Не понимаю, в чем может быть ошибка. Заранее спасибо, надеюсь на помощь.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Читали?

http://postgresql.ru.net/manual/role-membership.html

Ответ отыскался в последнем абзаце :
The role attributes LOGIN, SUPERUSER, CREATEDB, and CREATEROLE can be thought of as special privileges, but they are never inherited as ordinary privileges on database objects are. You must actually SET ROLE to a specific role having one of these attributes in order to make use of the attribute. Continuing the above example, we might choose to grant CREATEDB and CREATEROLE to the admin role. Then a session connecting as role joe would not have these privileges immediately, only after doing SET ROLE admin.

Т.е. права администратора не передаются по INHERIT, надо всегда делать SET ROLE

Каюсь, читал, но, видимо, не

Каюсь, читал, но, видимо, не внимательно. Спасибо за помощь.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023