权限管理是一个几乎全部后台系统的都会涉及的一个重要组成部分,主要目的是对整个后台管理系统进行权限的控制,而针对的对象是员工,避免因权限控制缺失或操做不当引起的风险问题,如操做错误,数据泄露等问题。其实权限管理的设计并不难,就目前来讲最普遍的是一个帐号对应多个角色,每一个角色对应相应的权限集(RBAC模型)这种模型基本能够应对全部的问题,且经过角色能够实现灵活且多样的的权限操做需求,咱们梳理一下上面主要提到的几个名词:帐号、角色、权限。spa
每一个员工想要进入系统确定都会有一个帐号,而这个帐号就是一把钥匙。咱们经过控制帐号所具有的权限,进而控制这个员工的受权范围。所以须要告诫员工,帐号密码不能轻易提供他人,否则遇到的问题由本身承担。设计
角色管理是肯定角色具有哪些权限的一个过程,他是一个集合的概念,是众多最小权限颗粒的组成。咱们经过把权限给这个角色,再把角色给帐号,从而实现帐号的权限,所以它承担了一个桥梁的做用。引入角色这个概念,能够帮助咱们灵活的扩展,使一个帐号能够具有多种角色。对象
角色的命名最好按照职位而定,例如市场部普通员工,市场部主管等。由于职位在任何企业都是存在的,且是有限的,而且容易理解,市场部文员那就是市场部文员角色,方便咱们配置权限时的判断,避免配置错误。blog
权限能够分为三种:页面权限,操做权限,数据权限。开发
页面权限控制你能够看到哪一个页面,看不到哪一个页面,不少系统都只作到了控制页面这一层级,它实现起来比较简单,一些系统会这样设计,可是比较古板,控制的权限不精细,难以在页面上对权限进行更下一层级的划分。rem
操做权限则控制你能够在页面上操做哪些按妞。(延伸:当咱们进入一个页面,咱们的目的无非是在这个页面上进行增删改查,那在页面上对应的操做多是:查询,删除,编辑,新增四个按钮)可能你在某个页面上,只能查询数据,而不能修改数据。原型
数据权限则是控制你能够看到哪些数据,好比市场A部的人只能看到或者修改A部建立的数据,他看不到或者不能修改B部的数据(延伸:数据的控制咱们通常经过部门去实现,每条记录都有一个建立人,而每个建立人都属于某个部门,所以部门分的越细,数据的控制层级也就越精细,这里是否有其余好的方式除了部门这个维度还有其余什么方式能够控制数据权限,你们能够提出来探讨一下)。权限控制
哪一个页面要放置哪些权限,彻底根据业务须要配置,你只须要把控制权限的地方列出来交给开发就好。it
给角色配置权限class
帐户列表
给帐户配置角色
这种方式也是不提倡的,这种形式若是上面所讲的,直接给帐号添加具体的权限,虽然提高的操做的便捷性,可是影响了权限的规范性与可维护性,角色这一桥梁就会变成断桥,统一性就会破坏掉。
截取的部分原型的页面,页面有点粗陋,仅供参考。
权限的分配要合理,不少公司分配给部门权限的时候很随意,部门要什么权限就给什么权限,其实这是有隐患的,咱们更多须要更深刻的考虑部门能有什么权限,而不是要什么权限,而这一块每每被忽略。
归根到底我想强调一件事情,权限的管理,如何从公司制度上重视,即如何规范权限的分配,即那个部门哪一个员工要哪一个权限都须要进行审批或邮件知会后才能帮其配置,还有哪些数据要设置权限,哪些操做要设置权限,这些权限管理过程才是权限系统的核心,偏偏这些核心的东西在系统上是体现不出来的。前期的不经意就会在后期会变成麻烦,不只影响业务效率,更会致使风险危机。权限管理最终是为了风控,若是权限的风控意识没作好,权限系统作的再好也是枉然。