通用数据权限管理系统设计(一)
作者:逸云
前言:
本文提供一种集成功能权限和数据权限的解决方法,以满足多层次组织中权限管理方面的集中控制。本方法是RBAC(基于角色的访问控制方法)的进一步扩展和延伸,即在功能权限的基础上增加数据权限的管理,实现数据权限和功能权限的集中处理。
解释:
功能权限:能做什么的问题,如增加销售订单;
数据权限:能在哪里干什么的问题,如察看北京分公司海淀销售部张三的销售订单;
术语:
资源:系统中的资源,主要是各种业务对象,如销售单、付款单等;
操作类型:对资源可能的访问方法,如增加、删除、修改等;
功能:对资源的操作,是资源与操作类型的二元组
,如增加销售单、修改销售单等;
数据类型:业务系统中常用的数据权限类型,如公司、部门、项目、个人等;
数据对象:具体的业务对象,如甲公司、乙部门等等,包括所有涉及到数据权限的对象值;
权限:角色可使用的功能,分角色的功能权限和角色的数据权限;
角色:特定权限的集合;
用户:参与系统活动的主体,如人,系统等。
通用数据权限管理系统设计(二)
方法说明:
在实际应用中,数据权限的控制点一般相对固定,如针对公司、部门、个人、客户、供应商等,也就是说数据权限一般针对指定数据类型下的一些数据对象。
本方法中,数据权限的依赖于功能权限,是对功能权限的进一步描述,说明角色在指定的功能点上的数据控制权限。
本方法中采用“没有明确规定即视为有效”的原则,如果没有定义功能的数据权限,则说明该角色具有该功能的全部的权限。如果定义了功能的某种类型的数据权限,则该用户只具有该类型下指定数据的数据权限。
这段话比较绕口,下面举个例子实际例子。
某公司有北京销售部、上海销售部和广州销售部三个销售部,现在需要定义几种角色:
销售总监 -- 能察看所有销售部的销售订单;
北京销售经理 -- 只能察看北京销售部的所有销售订单;
上海销售经理 -- 只能察看上海销售部的所有销售订单;
广州销售经理 -- 只能察看广州销售部的所有销售订单;
上述角色的定义如下:
-------------------------------------------------------------------
角色名称 功能 数据类型 数据对象
-------------------------------------------------------------------
销售总监 察看销售订单
北京销售经理 察看销售订单 部门 北京
上海销售经理 察看销售订单 部门 上海
广州销售经理 察看销售订单 部门 广州
-------------------------------------------------------------------
上述定义中,销售总监只定义了功能权限,而没有定义数据权限,所以销售总监能够察看所有的销售订单;而其他几位销售经理分别定义了这一功能的数据权限,所以只能察看指定部门的销售订单。
在实际应用中,往往会出现部门分组,组长能够察看本组所有人员处理的销售订单的情况,以及某些情况下,某些人只能察看本人的销售订单的情况,这些特殊情况在上述的说明中无法解决,需要在设计和实现中进行处理。
北京销售代表 -- 只能察看北京销售部的本人的所有销售订单;
北京销售代表 察看销售订单 部门 北京
个人
通用数据权限管理系统设计(三)--数据库设计
我们先来看看传统的基于角色的权限管理系统,如下图所示,最简单的基于角色的权限管理由系统功能、系统角色、系统用户、角色功能和用户角色五部分组成。
图一:基于角色的数据库结构
为实现数据权限控制,在设计上对基于角色的权限管理进行扩充,如下图所示:
图二:通用数据权限管理系统数据库设计
对比两张图,我们可以看到,他们之间的主要变化为:
1、 增加系统资源信息和操作类型信息,系统资源为树形结构、如销售模块、销售订单等;操作类型记录可能的操作,如增加、删除、修改、查看、查询等,系统功能是资源与操作类型的组合,对资源的操作就是系统功能。
2、 增加数据对象类型和数据对象两张表,数据对象类型记录系统中需要控制的对象类型,如部门、库房、员工、客户、供应商等;数据对象记录各对象类型的对象实例,如北京销售部、上海销售部、张三、李四等等。(独立保存的好处后面会说到)
3、 增加系统资源与数据对象类型的关联表(多对多),本表为配置表,说明某种资源可能需要的控制点,如销售订单与部门类型的关联可能涉及到分部门分配权限;销售订单与客户的关联可能涉及到按客户分配权限等等。
4、 增加数据对象与角色权限的关联,这张表是真正最终实现数据权限管理的所在地。
通过这种设计,能够最小化地减少对原有权限系统的更改,并且可以很灵活地增加数据的控制点。在产品化软件的设计中使用,能够灵活满足客户的需要。
- 大小: 6.8 KB
- 大小: 16.8 KB
分享到:
相关推荐
通用数据权限管理系统设计定义.pdf
使用 SpringBoot + SpringDataJPa 设计通用的权限管理系统,适合管理系统快速开发迭代,可用于开发模板,项目经过测试,可完美运行! 使用 SpringBoot + SpringDataJPa 设计通用的权限管理系统,适合管理系统快速...
基于RBAC模型的通用权限管理系统的设计(数据模型)
设计一个灵活、通用、方便的权限管理系统。 在这个系统中,我们需要对系统的所有资源进行权限控制,那么系统中的资源包括哪些呢?我们可以把这些资源简单概括为静态资源(功能操作、数据列)和动态资源(数据),也...
通用权限管理系统可练手可毕设,如果项目中有权限开发要求可直接拿来基础开发。 系统设计包括前端Vue框架和后端SpringBoot框架的搭建,以及数据库和权限控制模块的设计。前端使用Vue框架进行页面开发,利用Vue ...
该资源为通用权限管理系统数据库设计。该资源为通用权限管理系统数据库设计。
本文档对通用权限管理系统的总体设计、接口设计、界面总体设计、数据结构设计、系统出错处理设计以及系统安全数据进行了说明
基于SpringBoot的通用后台权限管理系统模板是一个用于快速搭建、开发和部署后台管理系统的基础框架。它提供了一套通用的权限管理模块,包括用户管理、角色管理、菜单管理等功能,同时也提供了一些常用的基础功能模块...
是一个简单高效的后台权限管理系统。项目基础框架采用全新的Java Web开发框架 —— Spring Boot2.0.4,消除了繁杂的XML配置,使得二次开发更为简单;数据访问层采用Mybatis,同时引入了通用Mapper和PageHelper插件,...
java后台权限管理系统源码(spring boot+mvc+mybatis)。 项目是maven,相应的jar包也在压缩包里。项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器)...
通用RBAC权限设计及其数据权限和分库分表 支持服务限流、动态路由、灰度发布、 支持常见登录方式, 多系统SSO登录 基于 Spring Cloud Hoxton 、Spring Boot 2.3、 OAuth2 的RBAC权限管理系统 提供对常见容器化支持 ...
本文探讨了RBAC0\RBAC1\RBAC2\RBAC3的模型特点,并给出了一个完整的数据库设计原型有一定的参考价值
第1章 通用权限管理组件简介 7 1.1 软件开发现状分析 7 1.2 功能定位、建设目标 7 1.3 目标用户群体 9 1.4 系统优点 11 1.5 系统架构大局观 12 1.6 物理结构图 13 1.7 逻辑结构图 14 1.8 系统运行环境配置 15 1.9 ...
RBAC通用角色权限管理系统, 前后端分离架构, 基于 vue-element-admin 和 PHP CodeIgniter RESTful 实现 软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发Node.js、C++、Java、python、web、C#等...
管理功能强:用户能完全根据自身业务需要和特点,迅速建立各种管理系统,管理系统数量不受任何限制,可自定义数据项目、录入限制条件、计算公式、报表格式、系统密码、操作权限等,能对任意数据库实现全方位数据处理...
这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等...
数据库课程设计报告 工资管理系统数据库设计报告 设计题目:工资管理系统 学 院:信息技术学院 专 业:信息管理与信息系统 小组成员及分工 "组员 "分工 "分数 " " "编写代码及测试运行 " " " "概念设计 " " " "物理...