一种数据查询服务权限的处理方法技术

技术编号:33993525 阅读:26 留言:0更新日期:2022-07-02 10:18
本发明专利技术公开了一种数据查询服务权限的处理方法,属于数据查询服务权限技术领域,包括采集各OLTP和OLAP系统中的元数据并存储至MySQL系统中,形成元数据信息;基于客户端的数据查询需求,服务端给各个用户分配不同的元数据查询权限;服务端根据查询需求的SQL语言生成抽象语法树,基于广度遍历算法遍历抽象语法树,获取解析后的元数据;服务端根据查询权限进行校验,给客户端返回查询结果。本发明专利技术设计科学合理,使用方便,解决了现有数据查询中数据权限和数据安全实现困难的技术问题,实现了数据通用且安全的输出查询。数据通用且安全的输出查询。数据通用且安全的输出查询。

【技术实现步骤摘要】
一种数据查询服务权限的处理方法


[0001]本专利技术属于数据查询服务权限
,具体涉及一种数据查询服务权限的处理方法。

技术介绍

[0002]大数据平台对各方数据进行抽取、加载、转化,然后再输出用于业务需要,为此需要一种通用查询的数据服务进行数据查询。然而数据查询涉及到数据权限和数据安全等的问题,在目前大数据行业中并没有统一的解决方案,各种组件都有自身的一套权限验证体系,其中haddoop体系自带有ranger的权限管理,druid数据库和clickhouse数据库则分别在各自系统中单独配置用户权限。对于支持SQL查询的OLTP系统和OLAP系统,大数据平台通过 rest

api提供统一的数据服务,其权限验证和数据安全实现较为困难。第一,不同存储引擎SQL的语法不同,其解析规则也有差异,没有一个屏蔽parse细节的服务;第二,解析出的数据库表字段,没有统一的元数据系统管理,即便是有开源的元数据系统也很难和自己开发的数据服务进行交互;第三, 各个开源组件的实现复杂、权限验证模块功能复杂。
[0003]因此,本专利技术提供了一种数据查询服务权限的处理方法,以至少解决上述部分技术问题。

技术实现思路

[0004]本专利技术要解决的技术问题是:提供一种数据查询服务权限的处理方法,以至少解决上述部分技术问题。
[0005]为实现上述目的,本专利技术采用的技术方案如下:一种数据查询服务权限的处理方法包括以下步骤:步骤S1,采集各OLTP和OLAP系统中的元数据并存储至MySQL系统中,形成元数据信息;步骤S2,基于客户端的数据查询需求,服务端给各个用户分配不同的元数据查询权限;步骤S3,服务端根据查询需求的SQL语言生成抽象语法树,基于广度遍历算法遍历抽象语法树,获取解析后的元数据;步骤S4,服务端根据查询权限进行校验,给客户端返回查询结果。
[0006]进一步地,所述步骤S1中,采集各OLTP和OLAP系统中的元数据包括数据库和数据库表。
[0007]进一步地,所述步骤S1中,元数据存储的逻辑结构包括第一结构表,所述第一结构表包括数据库名称、各数据库中的存储引擎、以及数据库表名称。
[0008]进一步地,所述数据库名称、各数据库中的存储引擎、以及数据库表名称一一对应。
[0009]进一步地,元数据存储的逻辑结构还包括第二结构表,所述第二结构表包括数据
库表和各数据库表中的数据库列。
[0010]进一步地,一个所述数据库表对应一个或多个数据库列,数据库表和各数据库表中的数据库列一一对应。
[0011]进一步地,所述步骤S3包括以下过程:步骤S31,服务端获取数据库中存储引擎的类型,生成数据查询需求的SQL语言;步骤S32,根据存储引擎的源代码,解析生成抽象语法树;步骤S33,通过广度遍历算法遍历抽象语法树,解析出该数据库下SQL语言中数据库表和数据库列的关系;步骤S34,获取数据库、数据库表和数据库列的对应关系,作为解析后的元数据信息;步骤S35,将解析后的元数据信息存储在元数据存储系统中。
[0012]进一步地,所述步骤S31包括以下过程:所述步骤S31包括以下过程:步骤S331,遍历当前节点,获取当前节点的所有子节点;步骤S332,循环遍历当前节点的所有子节点;步骤S333,判断子节点的类型,如果是选择节点并且是第一次处理该选择节点类型,则解析选择节点的孩子节点,解析出SQL语言最外层查询的数据库列信息,将数据库列信息放入临时存储list中,然后break当前的分支返回到步骤S332;如果是数据库表名的节点,则解析表名和对应的别名,分别push到数据结构,然后break当前的分支返回到步骤S332;如果是选择节点,从栈中解析出数据库表的名称,然后解析选择节点的孩子节点,解析出相应的一个或多个数据库列信息,形成一条数据库表和对应数据库列的关系,放入临时存储Map数据结构中;如果是其它节点,返回到步骤S331直至执行完递归算法;步骤S334,执行完递归算法后,根据临时存储list和数据结构,解析出最外层的数据库表与数据库列的关系。
[0013]进一步地,所述步骤S4中,权限配置系统返回校验结果,如果验证不通过,则给客户端返回无权访问数据的结果;如果验证通过,则在元数据存储系统拉取数据,将验证之后的元数据信息发送给客户端。
[0014]进一步地,所述步骤S2中,数据查询权限的数据结构包括各个用户名、与每个用户名对应的具有查询权限的数据库、以及与每个用户名对应的数据库中具有查询权限的数据库表,将数据查询权限的数据结构存储至权限配置系统中。
[0015]与现有技术相比,本专利技术具有以下有益效果:本专利技术设计科学合理,使用方便,解决了现有数据查询中数据权限和数据安全实现困难的技术问题。本专利技术包括元数据的采集、查询权限的分配、元数据的获取、以及查询权限的校验,以此实现数据通用且安全的输出。本专利技术最为核心的是元数据的获取,其基于不同开源引擎的源代码,剥离引擎中AST抽象语法树的生成代码,然后此基础上进行二次开发,通过广度遍历算法遍历AST抽象语法树解析出所需的数据库、数据库表和数据库列。而后根据之前分配给用户的元数据查询权限,进行数据权限和数据安全的校验,最终返回查询结果。
附图说明
[0016]图1为本专利技术方法流程图。
具体实施方式
[0017]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图,对本专利技术进一步详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。
基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0018]本专利技术对以下技术名称进行解释:SQL 是 Structured Query Language 的缩写,是一种结构化查询语言;list是一个计算机专业术语,在编程语言中list是类库中的一个类;break在一些计算机编程语言中是保留字,其作用大多情况下是终止所在层的循环;push指在集合中添加元素,并返回新的长度;栈在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。
[0019]Map是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。
[0020]如图1所示,本专利技术提供的一种数据查询服务权限的处理方法,设计科学合理,使用方便,解决了现有数据查询中数据权限和数据安全实现困难的技术问题。本专利技术包括以下步骤:步骤S1,采集各OLTP和OLAP系统中的元数据并存储至MySQL系统中,形成元数据信息;步骤S2,基于客户端的数据查询需求,服务端给各个用户分配不同的元数据查询权限;步骤S3,服务端根据查询需求的SQL语言生成抽象语法树,基于广度遍历算法遍历抽象语法树,获取解析后的元数据;步骤S4,服务端根据查询权限进行校验,给客户端返回查询结果。
[0021]本专利技术所述步骤S1中,采集各OLTP和OLAP系统中的元数据包括数据库和数据库表。元数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据查询服务权限的处理方法,其特征在于,包括以下步骤:步骤S1,采集各OLTP和OLAP系统中的元数据并存储至MySQL系统中,形成元数据信息;步骤S2,基于客户端的数据查询需求,服务端给各个用户分配不同的元数据查询权限;步骤S3,服务端根据查询需求的SQL语言生成抽象语法树,基于广度遍历算法遍历抽象语法树,获取解析后的元数据;步骤S4,服务端根据查询权限进行校验,给客户端返回查询结果。2.根据权利要求1所述的一种数据查询服务权限的处理方法,其特征在于,所述步骤S1中,采集各OLTP和OLAP系统中的元数据包括数据库和数据库表。3.根据权利要求2所述的一种数据查询服务权限的处理方法,其特征在于,所述步骤S1中,元数据存储的逻辑结构包括第一结构表,所述第一结构表包括数据库名称、各数据库中的存储引擎、以及数据库表名称。4.根据权利要求3所述的一种数据查询服务权限的处理方法,其特征在于,所述数据库名称、各数据库中的存储引擎、以及数据库表名称一一对应。5.根据权利要求3所述的一种数据查询服务权限的处理方法,其特征在于,元数据存储的逻辑结构还包括第二结构表,所述第二结构表包括数据库表和各数据库表中的数据库列。6.根据权利要求5所述的一种数据查询服务权限的处理方法,其特征在于,一个所述数据库表对应一个或多个数据库列,数据库表和各数据库表中的数据库列一一对应。7.根据权利要求5所述的一种数据查询服务权限的处理方法,其特征在于,所述步骤S3包括以下过程:步骤S31,服务端获取数据库中存储引擎的类型,生成数据查询需求的SQL语言;步骤S32,根据存储引擎的源代码,解析生成抽象语法树;步骤S33,通过广度遍历算法遍历抽象语法树,解析出该数据库下SQL语言中数据库表和数据库列的关系;步骤S34,获取数据...

【专利技术属性】
技术研发人员:韩雷马洋
申请(专利权)人:中建电子商务有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1