RBAC,数据库字段设计

一. 权限

  • 系统的所有权限信息。权限具有上下级关系,是一个树状的结构。下面来看一个例子
  • 系统管理
  • 用户管理
  • 查看用户
  • 新增用户
  • 修改用户
  • 删除用户
  • 对于上面的每个权限,又存在两种情况,一个是只是可访问,另一种是可授权,例如对于“查看用户”这个权限,如果用户只被授予“可访问”,那么他就不能将他所具有的这个权限分配给其他人。

二. 用户

  • 应用系统的具体操作者,用户可以自己拥有权限信息,可以归属于0~n个角色,可属于0~n个组。他的权限集是自身具有的权限、所属的各角色具有的权限、所属的各组具有的权限的合集。它与权限、角色、组之间的关系都是n对n的关系。

三. 角色

  • 为了对许多拥有相似权限的用户进行分类管理,定义了角色的概念,例如系统管理员、管理员、用户、访客等角色。角色具有上下级关系,可以形成树状视图,父级角色的权限是自身及它的所有子角色的权限的综合。父级角色的用户、父级角色的组同理可推。

四. 组

  • 为了更好地管理用户,对用户进行分组归类,简称为用户分组。组也具有上下级关系,可以形成树状视图。在实际情况中,我们知道,组也可以具有自己的角色信息、权限信息。这让我想到我们的QQ用户群,一个群可以有多个用户,一个用户也可以加入多个群。每个群具有自己的权限信息。例如查看群共享。QQ群也可以具有自己的角色信息,例如普通群、高级群等。

五. 数据库设计

1 用户表
RBAC,数据库字段设计
2. 角色表
RBAC,数据库字段设计
3. 权限表
RBAC,数据库字段设计
4. 组表
RBAC,数据库字段设计
5. 角色权限表
RBAC,数据库字段设计
6. 组权限表
RBAC,数据库字段设计
7. 组角色表
RBAC,数据库字段设计
8. 用户权限表
RBAC,数据库字段设计
9. 用户角色表
RBAC,数据库字段设计
10. 用户组表
RBAC,数据库字段设计
11. 组织表
RBAC,数据库字段设计
12. 操作日志表
RBAC,数据库字段设计