RBAC(Role-Based Access Control)是一种基于角色的访问控制。它通过角色来管理用户的权限。RBAC 的核心思想是将用户与角色进行关联,并将权限分配给角色,而不是直接分配给用户。这样,通过改变用户的角色,就可以灵活地控制用户的权限。

RBAC 的主要组成部分包括:

  • 用户(User):系统的使用者。
  • 角色(Role):权限的集合,一个角色可以包含多个权限。
  • 权限(Permission):对系统资源的访问操作,如读取、写入、删除等。

而根据用户-角色-权限之间的关系逻辑,又衍生出一些更复杂的权限模型。

RBAC 0即上面所讲的 RBAC 模型,基于用户-角色-权限的模型
RBAC 1 基于角色的层次模型角色层次结构允许角色之间存在继承关系
RBAC 2:基于约束的 RBAC 模型(Constraints)加强访问控制策略的规则或条件,可以限制用户、角色和权限的关联方式
RBAC 3:统一模型(Consolidated Model)结合了 RBAC1 的角色层次结构和 RBAC2 的约束,形成一个统一的模型,提供了最大程度的灵活性和安全性
基于 RBAC 的延展:用户组对用户组提前分配好角色,再分配用户进用户组预设

实践

数据库表设计用户,角色,权限,角色-权限,用户-角色