[发明专利]一种基于角色的列表数据权限控制系统和方法在审
申请号: | 201810333846.5 | 申请日: | 2018-04-13 |
公开(公告)号: | CN108509807A | 公开(公告)日: | 2018-09-07 |
发明(设计)人: | 袁超 | 申请(专利权)人: | 南京新贝金服科技有限公司 |
主分类号: | G06F21/62 | 分类号: | G06F21/62 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 陈建和 |
地址: | 210032 江苏省南京市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 列表数据 目标系统 数据源 权限分配模块 权限控制模块 权限控制系统 权限控制 角色 数据库 数据权限控制 切面 过滤器模块 代理模块 集中管理 解析引擎 控制权限 连接目标 权限信息 灵活的 匹配 侵入 维护 开发 | ||
本发明公开了一种基于角色的列表数据权限控制系统,用于连接目标系统,其特征在于:包括列表数据权限分配模块、列表数据权限控制模块、数据源(DataSource)模块和数据库,所述列表数据权限分配模块用于匹配角色和列表数据权限控制规则,所述数据源(DataSource)模块与数据库相连,所述列表数据权限控制模块中设有过滤器模块、SQL语句解析引擎和数据源(DataSource)代理模块。达到权限信息集中管理,独立于目标系统,和目标系统的具体功能和逻辑无关,权限控制相当于目标系统的切面,不侵入目标系统,可以灵活的控制权限。在目标系统开发和维护过程中,不需要考虑数据权限控制的工作的效果。
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种基于角色的列表数据权限控制系统和方法。
背景技术
在许多web系统开发中,经常需要给不同的使用者以不同的权限,权限分两部分,即功能权限和数据权限。功能权限指的是允许或拒绝用户使用目标系统提供的某个功能。数据权限是指允许或拒绝用户进行某个数据的增删改查操作。功能权限在很多开源框架中都提供了较为完善和通用的解决方案,但是关于数据权限的控制,大多是在代码开发时通过硬编码的方式,对访问数据库的SQL语句添加各种涉及数据权限控制的过滤条件来实现。这样做有很多的弊端,一是涉及到数据权限的调整时,都需要开发人员介入,需要调整代码,甚至重新发布,成本和效率都很差;而是数据权限的控制代码侵入到系统中的各个方面,违反了软件设计原则,增加了维护难度和成本.
针对以上问题,进行了以下思考,数据访问控制实质就是对SQL语句添加数据过滤条件(这里的数据控制讨论范围仅限于数据库,不包含其他形式的数据存储方式),我们把控制数据访问的规则独立到应用之外,在开发过程中不需要关注数据权限的问题,在之后,通过对要控制的数据表设定权限控制规则,然后把这些列表数据权限控制规则分配到指定的角色上,再把角色和用户绑定,就可以通过用户身份来进行数据权限控制。数据访问权限需要调整时,无需修改代码,只需要修改定义的列表数据权限控制规则即可。
发明内容
本发明所要解决的技术问题是克服现有技术的不足,提供一种基于角色的列表数据权限控制系统和方法。
为解决上述技术问题,本发明提供一种基于角色的列表数据权限控制系统,用于连接目标系统,其特征在于:包括列表数据权限分配模块、列表数据权限控制模块、数据源(DataSource)模块和数据库,所述列表数据权限分配模块用于匹配角色和列表数据权限控制规则,所述数据源(DataSource)模块与数据库相连,所述列表数据权限控制模块中设有过滤器模块、SQL语句解析引擎和数据源(DataSource)代理模块,所述数据源(DataSource)模块与数据源(DataSource)代理模块相连,以使数据源(DataSource)代理模块可获取数据源(DataSource)模块提交给数据库执行的SQL语句,所述过滤器模块用于获取身份信息,列表数据权限信息以及请求url,所述SQL语句解析引擎对数据源(DataSource)模块提交给数据库执行的SQL语句进行分析并根据列表数据权限分配模块中的列表数据权限控制规则添加列表数据权限控制信息,所述SQL语句解析引擎将添加了列表数据权限控制信息的SQL语句交回给数据源(DataSource)代理模块,所述数据源(DataSource)代理模块将添加了列表数据权限控制信息的SQL语句交回给数据源(DataSource)模块进行执行。
所述过滤器模块为filter过滤器模块,在进行数据权限控制时,第一步需要确认访问者的身份信息,使用filter过滤器模块,filter过滤器在Java Servlet规范中定义,filter过滤器模块在处理每次请求时,会从请求中获取登录用户信息,取出列表数据权限分配模块分配给该用户的角色和角色拥有的权限数据,提供给SQL语句解析引擎使用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京新贝金服科技有限公司,未经南京新贝金服科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810333846.5/2.html,转载请声明来源钻瓜专利网。