Мне кажется, что это справедливо и похоже на то, что мы уже установили для первых трех таблиц.
Затем вам нужно решить проблему «действия», то есть распределить разрешения на использование действий вашего приложения. Я не уверен, что ваше предложение «Разрешения» будет охватывать все ситуации, так как вам приходится иметь дело с 2 основными категориями действий:
- Действия «Открытая форма», которые вы уже определили: вам фактически нужно определить 2 уровня авторизации для каждой формы: право «просмотр» и право «обновление».
- Все другие действия, такие как кнопки или меню для конкретных форм, которые позволят вам выполнить определенное действие, отличное от простого открытия формы (выполнить отчет, выполнить определенный расчет, автоматически импортировать или обновить данные и т. Д.).
Одно из решений / Мой совет - сохранить 2 таблицы для этого:
- Таблица «Формы»
- Таблица «Действия»
И соответствующие таблицы ссылок:
- Таблица «Form_Role»
- Таблица «Action_Role»
При такой конфигурации вы полностью покрыты. Вы даже можете решить, какая роль имеет право просматривать конкретный отчет в определенной форме, если к соответствующему действию обращаются через определенный элемент управления или меню в форме.
Таблицы Forms и Actions очень интересны, так как они оба участвуют в метамодели вашего приложения ...
РЕДАКТИРОВАТЬ: Кстати, если вы находитесь в домене, вы можете использовать учетные данные домена пользователя для управления его правами доступа к вашей системе. В этом случае вам не нужно хранить пароль в вашей системе RBAC.