权限设计的总结

作者: 产品大宝看世界 | 来源:发表于2018-12-08 15:23 被阅读85次


     最近刚好遇到朋友在问权限设计的问题,今日刚好抽出时间,将权限从从零到一规整一遍。权限设计是B端产品产品经理必备的技能之一,做任何后台系统都会考虑到权限怎么设计,权限设计的好坏,直接会影响整个系统的可扩展性和易用性,本文是针对权限设计相关知识的总结归纳,希望能给你带来相关的帮助。

1.为什么要做权限设计?

       这里可以引用一个小故事来说明:一家培训机构,由于起初规模比较小,只有老师,教学顾问,财务,老板四个角色,公司产品数据主要靠EXCEL表格来完成,因为规模比较小EXCEL能很好的展示整个公司的内部数据,但随着培训机构规模不断变大,公司从北京开到每个二线城市,再从二线城市做到三线城市,人员变多,公司组织结构变长,以前的EXCEL已经不能满足目前的管理需求,这里就需要公司有统一的管理平台,来为公司内部管理进行服务;内部信息化平台面临的问题有:线下的组织结构是层级关系,每个员工的功能职权是不一样的,这些东西都应该体验在系统中,所以系统的权限设计,怎么满足线下业务的扩展,线下员工的离职和就职,线下员工能更好的在线上做自己份内的事?

2.权限设计术语介绍:

用户:参与系统活动的主体,如人。 

角色:特定权限的集合; 

权限:角色可使用的功能,分角色的功能权限和角色的数据权限;

RBAC设计方案:基于角色的权限设计方案,更好的管理用户;

操作类型:对资源可能的访问方法,如增加、删除、修改等; 

 功能:对资源的操作,是资源与操作类型的二元组,如增加销售单、修改销售单等;

 资源:系统中的资源,主要是各种业务对象,如销售单、付款单等; 数据类型:业务系统中常用的数据权限类型,如公司、部门、项目、个人等;

 数据对象:具体的业务对象,如甲公司、乙部门等等,包括所有涉及到数据权限的对象值;权限设计原则:第一:权限的粒度要做到最小,保证在权限分配时,只赋予用户足够完成其工作的权限;第二:避免出现权限互斥的情况

权限设计原则:第一:权限的粒度要做到最小,保证在权限分配时,只赋予用户足够完成其工作的权限;第二:避免出现权限互斥的情况;


3.权限设计的分类

A.功能的权限设计(模块权限,页面权限,按钮权限)

功能权限指:用户应该在系统中拥有哪些功能模块,哪些页面可以访问,以及页面的按钮哪些可以操作。这里可以比方功能权限是一个容器,数据是水,容器可以加温水,冰冻水,改变水的的矿物质成分,对水进行各种相关的操作。

B.数据权限设计(能访问到的数据库权限)

数据权限指:数据可以指容器里面水的范围,功能权限是容器,虽然拥有相关的功能,但能对哪里的水进行操作,这里的水的范围可能是:全国,A省,B省,或者一个市等等;

所以基于数据的权限设计(数据权限则是控制你可以看到哪些数据,比如市场A部的人只能看到或者修改A部创建的数据,他看不到或者不能修改B部的数据。)

4.下面会用一个实例来讲功能权限设计和数据权限设计:

背求1:目前一个大型连锁培训机构,机构目前的组织结构为:总部,城市,学校,部门管四层结构;现要设计一个系统:能够管理整个培训机构的行政系统,角色的建立每个校区都有个性化需求,每个城市及校区有自己建立角色的需求;根据业务我们可以将权限分为:超级管理员用户,城市后台用户,学校后台用户,部门管理员四层关系;

组织层级关系

第一步梳理:梳理层级关系(我们可以找出每一个层级的BOSS)

超级管理员:

超级管理员是每个后台系统都存在的隐含角色,他拥有系统所有的功能权限和系统权限

集团管理员

集团管理员是超级管理员的子集,是配合超管管理下面的业务,他和超管只是平级的子集关系

城市管理员(我们也可对这个城市组织节点授权)

城市管理员:他拥有整个城市的功能权限和数据权限,他可以建立用户,将自己的权限分配给城市的用户,该城市用户的权限是自己的子集;

学校管理员(我们也可对学校组织节点授权)

学校管理员:学校管理员拥有城市管理员分配给他的权限,他的权限是城市管理员的子集,每个学校都有部门,学校管理员可以建立部门用户,部门所在的用户是自己权限的子集

部门管理员(我们也对对这个部门组织节点授权)

部门管理员:部门管理员可以建立职位(角色),新建的用户权限是自己权限的自己;

权限的层级关系

 第二步:每一层建立角色

每个后台用户可以自定义角色,给相应的用户授权,每个后台用户的权限是上一个后台用户权限的子集,后台用户创立角色的权限是子集的权限子集;这里也可以首先给城市,学校,部门这个组织节点分配权限,当每一层的管理员建立角色分配权限时只能是这个城市权限的子集;

第三步:给角色授权

     这里我要将所有的权限进行打散:系统功能的筛选无非是从:系统名称-模块名称-功能项(这里的功能项已经拆解到按钮级别了)

第四步:给用户授权

 角色创立了,我们就可以对用户进行授权,角色和用户的关系可以是一对一,也可以是一对多的关系;


总结:

1:权限的设计是基于线下业务的层级关系,对于多层级权限,我们要分层去授权,所以每一层都有角色权限的管理,每一层的角色定义也不一样;

2:权限是个集合关系,每一层建立的用户权限是该层级管理员权限的子集(也可指该层级组织的子集)

3:功能权限设计只是给了用户拥有模块,页面,按钮操作的权限;

4:遇到相同层级组织的功能权限分配,不仅是功能不一样;如集团管理建立城市管理员用户时,会给城市管理分配一个城市属性,再分配其角色,属性其实是一种数据权限,角色是重功能权限;

5:跨组织的用户怎么分配权限,如某用户即属于城市A又属于城市B,城市A分配的是角色a,城市B分配的是角色b?   由于角色a和角色b只是户的功能页面授权,功能页面存在差异所以必须拆开显示,而不能合并显示;所以遇到跨组织的用户权限分配必须拆开显示;

6:数据权限和功能权限的区别,数据权限是填充物,功能权限是框架和改变填充物的器具;


5:总结

     以上就是本人对如何做权限设计的总结分析,仅供大家参考,希望在工作中能够帮助到大家,也希望大家一起多提意见,指出不足,感谢阅读!

相关文章

  • 权限设计的总结

    最近刚好遇到朋友在问权限设计的问题,今日刚好抽出时间,将权限从从零到一规整一遍。权限设计是B端产品产品经理必备...

  • 权限管理(React)

    系统权限 本文主要是总结前段时间项目中权限管理这块开发设计,包括:资源(路由级)权限、操作(按钮级)权限,以及登录...

  • 权限设计

    参考renren相关文章并对pano权限设计进行总结。 每版的功能调整、页面增加,都要考虑到权限。

  • UED经验总结

    权限设计总结https://mp.weixin.qq.com/s/MKljuxfDMmopr_MrnYljGw 表...

  • 权限系统设计总结

    本篇文章的内容是对在设计权限系统这个过程中的思路和查阅过的资料的整理,记录在简书方便后面review。 一、权限系...

  • 业务后台系统之流程设计

    上周在《业务后台系统之权限设计》中总结了自己在最近一个后台业务系统项目中的后台产品设计经验,本篇继续总结完后台设计...

  • JavaWeb权限设计原理

    每个系统都有权限设计,本篇主要将初始的权限设计的原理,不依赖任何框架,以直观的角度剖析web的权限设计。 权限设计...

  • 数据库 权限设计

    数据库 权限设计 -系统权限管理设计-通用权限管理设计 之 数据库结构设计 权限 用户 角色 组 用户表

  • 后台系统权限设计总结

    后台系统权限设计总结做B端后台,一个老生常谈的话题就是权限控制,如何做权限控制,初步整理一下。用户场景后台系统常常...

  • 后台系统权限设计总结

    做B端后台,一个老生常谈的话题就是权限控制,如何做权限控制,初步整理一下。 用户场景 后台系统常常都有各类用户他们...

网友评论

    本文标题:权限设计的总结

    本文链接:https://www.haomeiwen.com/subject/edyqhqtx.html