基于资源的授权数据库架构

时间:2020-02-06 14:48:54

标签: database authentication authorization database-schema resource-based-authorization

我有一个相当通用的数据库模式用于身份验证/授权:

User

 - Id
 - Username
 - Password

Role

 - Id
 - Name

RolePermission

 - RoleId
 - PermissionType

UserRole

 - UserId
 - RoleId

到那里,没有问题。现在,我需要以相当复杂的方式将UserRole与资源相关联。

例如想象一个Department资源。用户可以是一个部门的 Teacher 和其他部门的 Auditor 。同一用户还可以是整个 Institute 资源的 Supervisor

现在,我需要在数据库结构中表达该要求,然后我想到了这个想法:

User

Id   Username
1    user1

Role

Id   Name
1    Teacher
2    Auditor
3    Supervisor

Department

Id   Name
1    Dep1
2    Dep2
3    Dep3

Institute

Id   Name
1    Inst1

UserRole

UserId   RoleId   EntityName   EntityId
1        1        Department   1
1        2        Department   2
1        2        Department   3
1        3        Institute    1

这可能有效,但是我担心缺乏参照完整性强制。是否有更好的解决方案可以对需求进行建模?

0 个答案:

没有答案