Учитывая приложение, которое показывает объекты (например, фильмы) в соответствии с определенными правами пользователя.Контроль доступа: RBAC с дополнительным членством в группах вместо свойств объекта
общий вид разрешение на показ или создание объектов реализовано как RBAC с ролями и разрешениями.
Разрешение на доступ к объекту с определенными атрибутами (например, фильм с атрибутом «драма») должно быть реализовано с помощью членства. Это означает, что объект не обладает свойством «драма», он является членом группы «драма». Если пользователь и объект являются членами одной и той же группы, пользователь имеет специальное разрешение на доступ к этому объекту. Для отображения, создания или удаления объекта могут быть разные группы, например, простая группа зрителей или какая-то группа редакторов. Кроме того, существует таблица, которая указывает, какие типы групп релевантны для определенных действий над определенными объектами. Например, соответствующими группами для действия «показать» на объекте «фильм» могут быть «жанр» и «возраст» (пригодность фильма для определенных аудиторий).
Причина его реализации описанным образом заключается в том, чтобы иметь большую гибкость, не касаясь кода. Изменения в группах могут обрабатываться в базе данных.
Общая структура базы данных:
Пример: Фильм "Выживший" является членом группы "жанр: драма" и "возраст: 18". Пользователь может получить к нему доступ, если он также является членом этих групп.
ли это звучит как хороший подход? Существуют ли существующие решения, подобные этому подходу? Имеет ли он серьезные недостатки (например, слишком много запросов к базе данных - может быть, несколько сотен пользователей каждый день)?
Пожалуйста, поделитесь своими мыслями по этому вопросу со мной - выбор «драмы» как категории для примера не является совпадением;) Я просто не знаю, является ли это тупиком или я направляюсь в правильном направлении , Я застрял в этой точке довольно долгое время.
BTW только что понял, что этот ответ может также оказаться полезным: http://stackoverflow.com/questions/30701482/mysql-access-control –
thx для быстрого ответа :) Мне нужно некоторое время, чтобы глубже изучить ваши предложения. – NedRise