功能权限设计

摘录 - 如何做权限管理系统设计

2017-11-06  本文已影响0人  沈帕蒂

权限管理系统定义

权限管理是一个几乎所有后台系统的都会涉及的一个重要组成部分,主要目的是对整个后台管理系统进行权限的控制,而针对的对象是员工,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,数据泄露等问题。其实权限管理的设计并不难,就目前来说最广泛的是一个账号对应多个角色,每个角色对应相应的权限集(RBAC模型)这种模型基本可以应对所有的问题,且通过角色可以实现灵活且多样的的权限操作需求,我们梳理一下上面主要提到的几个名词:账号、角色、权限。

账号的定义

每个员工想要进入系统肯定都会有一个账号,而这个账号就是一把钥匙。我们通过控制账号所具备的权限,进而控制这个员工的授权范围。因此需要告诫员工,账号密码不能轻易提供他人,不然遇到的问题由自己承担。

角色的定义

角色管理是确定角色具备哪些权限的一个过程,他是一个集合的概念,是众多最小权限颗粒的组成。我们通过把权限给这个角色,再把角色给账号,从而实现账号的权限,因此它承担了一个桥梁的作用。引入角色这个概念,可以帮助我们灵活的扩展,使一个账号可以具备多种角色。

角色的命名最好按照职位而定,例如市场部普通员工,市场部主管等。因为职位在任何企业都是存在的,且是有限的,并且容易理解,市场部文员那就是市场部文员角色,方便我们配置权限时的判断,避免配置错误。

权限的定义

权限可以分为三种:页面权限,操作权限,数据权限。

页面权限控制你可以看到哪个页面,看不到哪个页面,很多系统都只做到了控制页面这一层级,它实现起来比较简单,一些系统会这样设计,但是比较古板,控制的权限不精细,难以在页面上对权限进行更下一层级的划分。

操作权限则控制你可以在页面上操作哪些按妞。(延伸:当我们进入一个页面,我们的目的无非是在这个页面上进行增删改查,那在页面上对应的操作可能是:查询,删除,编辑,新增四个按钮)可能你在某个页面上,只能查询数据,而不能修改数据。

数据权限则是控制你可以看到哪些数据,比如市场A部的人只能看到或者修改A部创建的数据,他看不到或者不能修改B部的数据(延伸:数据的控制一般通过部门去实现,每条记录都有一个创建人,而每一个创建人都属于某个部门,因此部门分的越细,数据的控制层级也就越精细,这里是否有其他好的方式除了部门这个维度还有其他什么方式可以控制数据权限)。

权限的分配

权限的分配要合理,很多公司分配给部门权限的时候很随意,部门要什么权限就给什么权限,其实这是有隐患的,我们更多需要更深入的考虑部门能有什么权限,而不是要什么权限,而这一块往往被忽略。

上一篇下一篇

猜你喜欢

热点阅读