1.为什么要实现权限系统
- 首先系统需要进行登陆才能访问
- 其次不同登陆用户要有不同的权利,而且要有不同的菜单(例如财务经理针对系统中财务相关模块进行操作,人事经理针对系统中人事模块进行操作)
2.权限控制基本原理
a.ACL(Access Control Lists,缩写ACL)
- ACL是最早也是最基本的一种访问控制机制,它的原理非常简单:每一项资源,都配有一个列表,这个
列表记录的就是哪些用户可以对这项资源执行CRUD中的那些操作。当系统试图访问这项资源时,会首
先检查这个列表中是否有关于当前用户的访问权限,从而确定当前用户可否执行相应的操作。总得来
说,ACL是一种面向资源的访问控制模型,它的机制是围绕“资源”展开的。
b.基于角色的访问控制RBAC(Role-Based Access Control)
- RBAC是把用户按角色进行归类,通过用户的角色来确定用户能否针对某项资源进行某项操作。
- RBAC相对于ACL最大的优势就是它简化了用户与权限的管理,通过对用户进行分类,使得角色与权限关联起来,而用户与权限变成了间接关联。
RBAC模型使得访问控制,特别是对用户的授权管理变得非常简单和易于维护,因此有广泛的应用
规则:每个登陆的用户,可以有多个角色
每个角色又可以拥有多个权限(包含菜单和资源)