Возможно ли быть «администратором системы» с правом раздачи доступов для одно группы объёктов (пусть это папка с документами или город в списке поставщиков), но при этом не быть администратором в другой группе, где за раздачу прав отвечает другой человек?
Возможно, способов организации несколько:
1) Самый простой, когда администратор системы — одна роль с полным набором прав, при этом разрешений permission на разные группы объектов несколько. Тогда у каждого из администраторов необходимо забрать ненужные разрешения removed_permission_user_asgmt . Такой способ подходит, к огда администраторов немного.
2) Когда в рамках разных групп объектов создается своя роль «администратора группы объектов». При этом пользователям-администраторам будет назначаться общая для групп роль «администратор». Таким образом, каждый из них будет обладать администраторскими разрешениями, но выдавать права только в рамках свой группы.
Уверен, что на этих двух вариантах количество способов не ограничивается.
Данная реализация оставляет гораздо больший простор для действий, например, для того же логирования классическая модель уже не подходит, иначе как автоматизированно отслеживать, какое действие совершил пользователь? Или как в рамках классической модели хранить данные о 2х пользователях с одной и той же ролью, которые могут взаимодействовать с множеством ресурсов, при этом один из пользователей не имеет доступа к одному из ресурсов? Только созданием второй роли, почти полностью эквивалентной первой.
Ролевая модель данных прав доступа для web-ресурса