Я хотел бы реализовать базу данных, содержащую иерархические данные ACL
Мои столы
USERS
: idUser,имя пользователя,...GROUPS
: idGroups,имя...GROUPSENTITIES
: idGroup, idChild, childType (1 для пользователей, 2 из групп)ROLES
: idRole,имя...ROLESENTITIES
: idRole, IsDeny, idChild, childType (1 для пользователей, 2 из групп)Каждый пользователь может принадлежать к 0 или более группам
- Каждая группа может принадлежать 0 или более группам
- Каждый пользователь и каждая группа могут принадлежать к 0 или более ролям, а роли могут быть разрешены или запрещены.
- Если обнаружен явный отказ, роль отклоняется
Как я могу хранить такие данные? Мой дизайн правильный?
Можно ли получить список пользователей со всеми разрешенными ролями?
Не могли бы вы написать мне запрос (на основе T-SQL) для извлечения этой информации из БД?
заранее спасибо