Реализация управления доступом на основе ролей MySql - PullRequest
1 голос
/ 02 ноября 2019

Я собираюсь разработать веб-приложение для управления с помощью Laravel.

Мне нужно, чтобы у моих пользователей были разные роли с разными разрешениями.

Подробно: некоторые пользователи могут добавлять клиентов, некоторыепользователи могут писать кусочки бумаги, относящиеся к клиенту, некоторые другие пользователи могут просто читать эту бумагу, а некоторые другие пользователи могут читать только некоторые кусочки этой бумаги.

Поэтому я решил использовать подход RBAC, чтобыполучить определенную гибкость. Я буду использовать эту схему БД (только примерную схему, но представляющую потребности моего приложения):

dbexample

Мой ответ: поскольку существует прямаяОтношения между пользователями и бумагой, клиентом, приложениями и т. д., как выражаются правила RBAC? Я должен проверить разрешение пользователя во внешнем интерфейсе, когда он запрашивает операцию или ресурс? Или есть способы выразить это правило даже на бэкэнд-уровне? Может быть, использовать некоторые опции GRANT?

Надеюсь, sby может помочь. Спасибо!

1 Ответ

1 голос
/ 02 ноября 2019

Я бы порекомендовал использовать один из пакетов RBAC, уже доступных для вас, но есть несколько, но стоит упомянуть пару:

Вы определяете роли, такие как User и Customer, разрешения, такие как can-write-paper, can-read-paper, и назначаете их либо ролям, либо отдельнымпользователи в зависимости от вашего варианта использования.

...