Re: Роли: управление доступом к другим ролям. Роли как объекты системы безопасности.]
От | Alexey Klyukin |
---|---|
Тема | Re: Роли: управление доступом к другим ролям. Роли как объекты системы безопасности.] |
Дата | |
Msg-id | 20080702102656.GB14627@espresso.lan обсуждение исходный текст |
Ответы |
Re: [pgsql-ru-general] Роли: управление доступом к другим ролям. Роли как объекты системы безопасности.]
|
Список | pgsql-ru-general |
Привет, sftf wrote: > > Для примера, что собственно я хотел реализовать. > В разарабатываемом приложении, я хотел части пользователей (менеджерам отделов) дать возможность > создавать пользователей и назначать им роли из ограниченного списка ролей. > Для этого я предполагал создвать роли менеджеров так: CREATE ROLE manager NOSUPERUSER CREATEROLE... > Однако, согласно существующей сейчас в Postgres модели безопасности, роль с привелегикй 'CREATEROLE' > может изменять или удалять ЛЮБЫЕ другие роли, кроме SUPERUSER. > Таким образом, создав в системе двух менеджеров невозможно разграничить их возможности по управлению > ролями "своих" и "чужих" сотрудников, и вообще любых других ролей кроме суперюзеров. > Они даже смогут поменять пароли друг у друга. В данном примере роли пользователей (менеджеры отделов) по-моему относятся больше с пользовательскому приложению, а не к СУБД, соотвественно связь между менеджерами и другими пользователями можно сделать на уровне приложения. > > Конечно можно эту задачу решить на уровне приложения: продублировать список ролей в пользовательской > таблице с дополнительной информацией (владельцы ролей, права ролей на другие роли) и создавать/изменять > роли Postgres через хранимые процедуры+Dynamic SQL (не знаю пока еще, поддерживется дли динамический SQL в Postgres). Динамический SQL поддерживается. Т.е. из встраиваемых функций можно выполнять SQL запросы, сформированные кодом этих функций. P.S. это forward, забыл сделать cc на рассылку. -- Alexey Klyukin http://www.commandprompt.com/ The PostgreSQL Company - Command Prompt, Inc.
В списке pgsql-ru-general по дате отправления: