Роли: управление доступом к другим ролям. Роли как объекты системы безопасности.

Поиск
Список
Период
Сортировка
От sftf
Тема Роли: управление доступом к другим ролям. Роли как объекты системы безопасности.
Дата
Msg-id 417367745.20080702111958@mail.ru
обсуждение исходный текст
Список pgsql-ru-general
Разрабатываю приложение с использованием Postgres.
Обнаружил, что нет возможности управлять тем, что может делать данная роль с другими ролями.
Собственно, интересует: такой возможности не существует по каким-то иделогическим или техническим причинам?

Для примера, что собственно я хотел реализовать.
В разарабатываемом приложении, я хотел части пользователей (менеджерам отделов) дать возможность
создавать пользователей и назначать им роли из ограниченного списка ролей.
Для этого я предполагал создвать роли менеджеров так: CREATE ROLE manager NOSUPERUSER CREATEROLE...
Однако, согласно существующей сейчас в Postgres модели безопасности, роль с привелегикй 'CREATEROLE'
может изменять или удалять ЛЮБЫЕ другие роли, кроме SUPERUSER.
Таким образом, создав в системе двух менеджеров невозможно разграничить их возможности по управлению
ролями "своих" и "чужих" сотрудников, и вообще любых других ролей кроме суперюзеров.
Они даже смогут поменять пароли друг у друга.

Я начал в документации искать следующие возможности:
- наличие подчиненности ролей (роль имеет роль-создателя)
- GRANT описывающий, какие именно существующие роли, данная роль может назначать вновь создаваемым ролям
- GRANT описывающий, какие роли данная роль может изменять (включая: какие какие именно параметры роли)
- GRANT описывающий, какие роли данная роль может удалять
К сожалению таких возможностей не оказалось.
Кстати, даже в ORACLE таких возможностей нет, за исключением раздельных системых привелегий
CREATE/ALTER/DROP USER, что в данной ситуации ничего существенно не меняет.

Конечно можно эту задачу решить на уровне приложения: продублировать список ролей в пользовательской
таблице с дополнительной информацией (владельцы ролей, права ролей на другие роли) и создавать/изменять
роли Postgres через хранимые процедуры+Dynamic SQL (не знаю пока еще, поддерживется дли динамический SQL в Postgres).

Но все же удивительно, почему роли не являются такими же объектами в DAC как и другие объекты СУБД:
таблицы, представления, процедуры и т.д.?




В списке pgsql-ru-general по дате отправления:

Предыдущее
От: Oleg Bartunov
Дата:
Сообщение: Re: Статьи по использованию PostgreSQL
Следующее
От: sftf
Дата:
Сообщение: Re[2]: [pgsql-ru-general] Роли: управление доступом к другим ролям. Роли как объекты системы безопасности.