(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210870621.X
(22)申请日 2022.07.23
(71)申请人 北京亚鸿世纪科技发展 有限公司
地址 100095 北京市海淀区高里掌 路3号院
2号楼2层201-1至201-8号
(72)发明人 林飞 李晨光 吴换甫 易永波
古元 毛华阳 华仲峰
(51)Int.Cl.
G06F 21/60(2013.01)
G06F 21/62(2013.01)
G06F 21/31(2013.01)
(54)发明名称
基于用户角色动态添加数据访问权限控制
的方法及装置
(57)摘要
基于用户角色动态添加数据访问权限控制
的方法及装置涉及信息技术领域。 本发明由用户
信息同步模块、 规则填充模块、 数据过滤拦截器、
用户权限提取模块、 sql片段组装模块和sql语句
合成模块组成; 使用本发明不改动原有系统代
码, 只需要做依 赖引入, 提高维护性。 通过数据请
求拦截器植入sql片段合成sql请求的方式, 可以
对任意表的任意字段做查询管控, 不用改造原有
程序, 适配任意系统页面的数据查询, 避免了系
统的频繁改造和升级。 对数据库中间件做操作,
不直接对数据库做操作可兼容市面上绝大多数
的主流数据库。
权利要求书1页 说明书3页 附图1页
CN 115130127 A
2022.09.30
CN 115130127 A
1.基于用户角色动态添加数据访问权限控制的装置, 其特征在于由用户信息同步模
块、 规则填充模块、 数据过滤拦截器、 用户权限提取模块、 sql片段组装模块和sql语句合成
模块组成;
用户信息同步模块以定时的方式周期性读取平台的业务系统 的平台用户信 息, 平台用
户信息包括用户名称、 用户ID、 用户密码; 用户信息同步模块将平台用户信息记录到用户权
限规则表;
规则填充模块读取平台的业务系统的平台用户数据访问权限, 平台用户数据访问权限
包括用户名称、 数据 表名、 数据字段名和数据字段值; 规则填充模块将平台用户数据访问权
限写入用户权限规则表; 规则填充模块将用户权限规则表发送给用户权限提取模块;
数据过滤拦截器拦截访问平台的用户对平台的业务系统的访问请求, 提取访问平台的
用户对平台的业务系统的访问请求中的当前用户信息发送给用户权限提取模块; 提取访问
平台的用户对平台的业 务系统的访问请求中的用户查询sql语句发送给sql语句合成模块;
用户权限提取模块使用当前用户信 息查询用户权限规则表得到当前用户表权限, 当前
用户表权限包括用户名称、 用户ID、 用户密码、 数据 表名、 数据字段名和数据字段值; 用户权
限提取模块将当前用户表权限发送给sql片段组装 模块;
sql片段组装模块将用户表权限分组, 对同一个表的所有字段分为一组, 当用户存在多
个表的数据权限则会按照表的不同分为多个组; sql片段组装模块将分组内部sql组装, 对
组内多个字段进行与或连接, 当用户表权限中的字段属 性级别相同时做与连接组合, 当用
户表权限中的字段属性级别不相同时做或连接组合, 生成包含当前用户数据访问权限的
sql片段组; sql片段组装 模块将sql片段组发送给sql语句合成模块;
sql语句合成模块得到用户查询sql语句后进行解析, 按照sql子查询层级拆解成多个
字符串并标记序号和位置, 当用户查询sql语句没有子查询则默认只有一个字符串即用户
查询sql语句;
sql语句合成模块对用户查询sql语句解析得到的字符串拆解, 按照sql要素进行分段
拆解成多组: 包括: 输出字段 组、 查询表名组和查询条件组; 得到拆解后的字符串, 一条拆解
后的字符串包括输出字段组、 查询表名组和查询条件组;
sql语句合成模块用sql片段组和拆解后的字符串进行比对合成, 通过表名来匹配, 当
表名相同时把sql片段组中对应的一组信息追加到拆解后的字符串的查询条件组中, 合成
后形成一条完整的sql片段信息;
sql语句合成模块通过解析用户查询sql语句后得到的多个字符串及标记的序号和位
置将sql片段信息进行拼接合成, 最终形成一条完整的sql语句即合成的sql语句;
sql语句合成模块将合成的sql语句发送给平台的业务系统, 平台的业务系统将数据库
查询结果反馈给访问平台的用户。权 利 要 求 书 1/1 页
2
CN 115130127 A
2基于用户角色动态 添加数据访 问权限控制的方 法及装置
技术领域
[0001]本发明涉及信息技 术领域。
背景技术
[0002]信息化时代, 数据是一笔宝贵的资产。 不管政府还是企业单位, 每天都在有意无意
地收集、 存储、 共享数据, 且规模越来越大。 与各类数据打交道, 是现代企业成长的必经之
路, 但是敏感数据泄露的风险也与日俱增, 特别是当前信息化平台越来越庞大, 各类数据交
织、 使用平台的群体也各不相同。 所以, 在数据发达的今天, 对数据按照使用的角色不同做
严格的区分是很有必 要的。 对信息化平台的使用人怎么做最细粒度的数据隔离是等待解决
的问题。 在现有信息化平台中, 基本上是利用用户角色, 对系统的菜单页面做权限, 使特定
的用户只能访问特定的页面。 通过页面来做数据隔离的方式, 往往不能满足全部的需求。 以
往技术大多会对数据表做字段扩充来填充需要匹配的内容, 然后页面查询时做筛选,劣势
有二, 一是需要改动系统的写入逻辑, 二是需要改动系统的查询逻辑。 使用本发明不同的用
户需要访问同一个页面, 只是页面里面的数据信息按照用户权限不同分别开放给不同用
户, 而不是不同用户访问不同的页面, 能极大节省前端开 发成本。 本发 明从数据层面来做到
分权分域, 降低数据泄 露的风险。
[0003]现有技术说明
sql为数据库查询语句的英文缩写。
发明内容
[0004]鉴于现有技术的不足, 本发明提供的基于用户角色动态添加数据访问权限控制的
方法及装置由用户信息同步模块、 规则填充模块、 数据过滤拦截器、 用户权限提取模块、 s ql
片段组装 模块和sql语句合成模块组成;
用户信息同步模块以定时的方式周期性读取平台 的业务系统的平台用户信息, 平
台用户信息包括用户名称、 用户ID、 用户密码; 用户信息同步模块将平台用户信息记录到用
户权限规则表;
规则填充模块读 取平台的业务系统的平台用户数据访问权限, 平台用户数据访问
权限包括用户名称、 数据 表名、 数据字段名和数据字段值; 规则填充模块将平台用户数据访
问权限写入用户权限规则表; 规则填充模块将用户权限规则表发送给用户权限提取模块;
数据过滤拦截器拦截访问平台的用户对平台的业务系统的访问请求, 提取访问平
台的用户对平台的业务系统的访问请求中的当前用户信息发送给用户权限提取模块; 提取
访问平台的用户对平台的业务系统的访问请求中的用户查询sql语句发送给sql语句合成
模块;
用户权限提取模块使用当前用户信息查询用户权限规则表得到当前用户表权限,
当前用户表权限包括用户名称、 用户ID、 用户密码、 数据 表名、 数据字段名和数据字段值; 用
户权限提取模块将当前用户表权限发送给sql片段组装 模块;说 明 书 1/3 页
3
CN 115130127 A
3
专利 基于用户角色动态添加数据访问权限控制的方法及装置
文档预览
中文文档
6 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共6页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-18 22:34:51上传分享