顾名思义,“权”表明“权力”,划分了系统的职权,不一样的用户拥有不一样的权力划分;“限”表明“限制”,在权力划分的基础上对职能范围进行了限制,本文所述的权限相对简单,赋予不一样角色看到不一样菜单的权限。安全
权限控制能较好地解决系统安全问题,避免公司机密资料外泄,同时,不一样部门使用系统时互不干扰,所以被企业普遍应用。设计
用户是指系统的登陆用户,能够理解为一系列的人员,例如登陆用户为张3、李4、王五和肖六这几我的。blog
角色指用户在系统中担任的角色,是系统赋予用户的头衔,例如A公司后台系统角色能够定义为:总裁、经理、员工。ip
在早期,传统的权限模型就是为用户分配菜单权限,例如张三看到A、B、C菜单,李四看到B、C菜单,王五和肖六看到A、B、C菜单,这种传统的权限模型简单粗暴,直接为用户分配菜单便可,可是随着公司员工激增,在动则数百人的公司里,没一个员工都要分配一次,显然效率过低。开发
而且,在进行交互设计时,定义数百名用户拥有的菜单权限,那须要写数百行的表格。权限控制
RBAC,即基于角色的访问控制(Role-Based Access Control),是优秀的权限控制模型,主要经过角色和权限创建管理,再赋予用户不一样的角色,来实现权限控制的目标。io
利用该模型来配置权限,直接优势是角色的数量比用户的数量更少,先把权限赋予角色,便可完成权限的分配;再为用户分配相应的角色,便可直接得到角色拥有的权限。class
交互设计的福音,只需定义有限的角色拥有哪些菜单权限便可。效率
在选择第二种RBAC权限模型时,须要注意,用户——角色——权限之间并不是是一对一的对应关系,例如,一个用户能够拥有多种角色,一个角色也能够拥有多个权限,因此应该是多对多的关系,须要和开发说明清楚。登录
如图所示,经过权限控制后,不一样用户登陆进去看到的菜单显示都不一致,基于角色来进行菜单展现。
(1)总裁角色,菜单A、B、C
(2)经理角色,菜单B、C
(2)员工角色,菜单C