美文网首页
权限相关学习记录

权限相关学习记录

作者: 刚好遇到你_8bbe | 来源:发表于2018-04-23 13:45 被阅读0次

RBAC:基于角色的访问控制方法 

通用数据权限管理系统设计(一)

解释:

功能权限:能做什么的问题,如新增销售订单;

数据权限:能在哪里干什么的问题,如查看北京分公司海定销售张三的销售订单。

术语:

资源:系统中的资源,主要是各种业务对象,如销售单、付款单等等

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

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

数据类型:业务系统中常用的数据权限类型,如公司、部门、项目、个人等

数据对象:具体的业务对象,如甲公司、乙部门等等,包括所有涉及到数据权限的对象值;

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

角色:特定权限的集合

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

通用数据权限管理系统设计(二)

方法说明:

实际应用中,数据权限的控制点一般相对固定,如针对公司、部门、个人、客户、供应商等等,也就是说,数据权限一般针对指定数据类型下的一些数据对象。

本方法中,数据权限的依赖于功能权限,是对功能权限的进一步描述,说明角色在指定的功能点上的数据控制权限。

本方法中采用“没有明确规定即视为有效”的原则,如果没有定义功能的数据权限,则说明该角色具有该功能的全部的权限。如果定义了功能的某种类型的数据权限,则该用户只具有该类型下指定数据的数据权限。

这段话比较绕口,下面举个例子实际例子。

某公司有北京销售部、上海销售部和广州销售部三个销售部,现在需要定义几种角色:

销售总监      -- 能察看所有销售部的销售订单;

北京销售经理 -- 只能察看北京销售部的所有销售订单;

上海销售经理 -- 只能察看上海销售部的所有销售订单;  

广州销售经理 -- 只能察看广州销售部的所有销售订单;  


 角色名称            功能                     数据类型             数据对象  


 销售总监            察看销售订单                                 

 北京销售经理     察看销售订单     部门                     北京  

 上海销售经理     察看销售订单     部门                     上海     

 广州销售经理     察看销售订单     部门                     广州     


上述定义中,销售总监只定义了功能权限,而没有定义数据权限,所以销售总监能够察看所有的销售订单;而其他几位销售经理分别定义了这一功能的数据权限,所以只能察看指定部门的销售订单。

在实际应用中,往往会出现部门分组,组长能够察看本组所有人员处理的销售订单的情况,以及某些情况下,某些人只能察看本人的销售订单的情况,这些特殊情况在上述的说明中无法解决,需要在设计和实现中进行处理。


北京销售代表 -- 只能察看北京销售部的本人的所有销售订单;  

北京销售代表 察看销售订单 部门 北京     

                                     个人         

通用数据权限管理系统设计(三)--数据库设计     

   

基于角色的权限管理系统,如下图所示,最简单的基于角色的权限管理由系统功能、系统角色、系统用户、角色功能和用户角色五部分组成。

 图一:基于角色的数据库结构 图二:通用数据权限管理系统数据库设计

对比两张图,我们可以看到,他们之间的主要变化为:

1、 增加系统资源信息和操作类型信息,系统资源为树形结构、如销售模块、销售订单等;操作类型记录可能的操作,如增加、删除、修改、查看、查询等,系统功能是资源与操作类型的组合,对资源的操作就是系统功能。

2、 增加数据对象类型和数据对象两张表,数据对象类型记录系统中需要控制的对象类型,如部门、库房、员工、客户、供应商等;数据对象记录各对象类型的对象实例,如北京销售部、上海销售部、张三、李四等等。(独立保存的好处后面会说到)

3、 增加系统资源与数据对象类型的关联表(多对多),本表为配置表,说明某种资源可能需要的控制点,如销售订单与部门类型的关联可能涉及到分部门分配权限;销售订单与客户的关联可能涉及到按客户分配权限等等。

4、 增加数据对象与角色权限的关联,这张表是真正最终实现数据权限管理的所在地。

通过这种设计,能够最小化地减少对原有权限系统的更改,并且可以很灵活地增加数据的控制点。在产品化软件的设计中使用,能够灵活满足客户的需要。

相关文章

  • 权限相关学习记录

    RBAC:基于角色的访问控制方法 通用数据权限管理系统设计(一) 解释: 功能权限:能做什么的问题,如新增销售订单...

  • HADOOP服务器部署安装_1.md

    最近在学习大数据相关知识,记录下学习的过程:) 添加用户 添加用户sudo权限 配置静态网络并开启启动 修改主机名...

  • iOS配置info.plist访问隐私权限

    在这里记录下载info.plist中配置访问权限,供以后查找 定位相关权限配置KeyTypevalueNSLoca...

  • 权限相关

    自主访问控制(DAC: Discretionary Access Control) 系统会识别用户,然后根据被操作...

  • RedisTokenStore 源码解析 以及内存泄漏问题

    前言 前端时间,正好在做公司权限相关的架构问题,然后选择了Spring OAuth2来作为公司权限框架,先记录下目...

  • linux常用基本命令-3

    用户相关命令: 文件权限相关命令

  • WebRTC学习笔记

    着手学习WebRTC,记录一下 相关的学习笔记

  • 开发框架收集

    权限相关1.1 PermissionsDispatcher 音视频相关2.1 AndroidVideoCache ...

  • 权限相关操作

    利用Django自带的相关方法对权限进行基本的操作。 重写User模型 在创建的应用中的模块文件重新定义User模...

  • Android 权限相关

    Android M 新的运行时权限开发者需要知道的一切https://github.com/hotchemi/Pe...

网友评论

      本文标题:权限相关学习记录

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