← AI 百科

RBAC(基于角色的权限控制)

AI编程 · AI编程 / 安全 / 权限
一句话:不给每个用户单独配置权限,而是先定义几种"角色"(如管理员、编辑、访客),每种角色对应一组权限,用户只需要被分配角色。

它是什么

RBAC(Role-Based Access Control)是最主流的权限管理模型:权限不直接绑定到用户,而是绑定到角色,用户通过被分配某个角色间接获得对应权限。好处是权限调整只需要改角色的权限配置,不用逐个用户去改,也更容易理解和维护。

适合干什么

  • 用户量较大、角色分类清晰的系统
  • 需要灵活调整权限而不想每次都改代码的场景

不适合干什么

  • 只有一两个用户、权限区分极简单的场景(直接判断是不是管理员可能比引入RBAC模型更简单)

普通人怎么用

设计三个核心概念的对应关系:用户(User)属于哪些角色(Role),角色拥有哪些权限(Permission),判断一个用户能不能做某件事,就看他的角色是否包含对应的权限。

进阶用户怎么用

复杂系统可能需要角色继承(比如"高级管理员"继承"普通管理员"的所有权限再加一些)、以及基于资源的细粒度权限(不只是"能不能编辑文章",还要看"能不能编辑别人的文章");权限变更要有审计日志记录。

常见误区

  • 把角色和权限的概念搞混,角色是权限的集合(一个"标签"),权限是具体能做的某件事,两者不是一回事
  • 给每个用户都创建一个独立角色,失去了RBAC本该带来的简化管理的意义,应该让多个用户共享同一角色

和相似工具的区别

  • 和直接给用户绑定权限的区别:RBAC多了"角色"这一层,调整一批用户的权限只需要改角色配置,不用逐个用户修改,扩展性更好

入门步骤

  • 列出系统需要的角色和每个角色对应的权限
  • 设计用户-角色-权限的数据表结构
  • 在接口层实现基于角色的权限校验