掌桥专利:专业的专利平台
掌桥专利
首页

即席查询方法、装置、计算机设备和存储介质

文献发布时间:2023-06-19 10:02:03


即席查询方法、装置、计算机设备和存储介质

技术领域

本申请涉及大数据查询技术领域,特别是涉及一种即席查询方法、装置、计算机设备和存储介质。

背景技术

随着大数据技术的发展,各行各业的分析和决策上对大数据的依赖更加明显。除了常规报表和数据统计外,日常工作中为了灵活应对业务需求,即席查询平台通常都不可或缺。即席查询是一种用户根据自己的需求,灵活地选择查询条件,系统即刻反应,快速地获取到查询结果的查询方式。而对于现在依赖大数据的公司来说,数据就是公司的财富和命脉,因此在即席查询在为分析工作带来灵活便捷的同时,数据的安全性也同样引起了高度的重视。

为了保证数据的安全性,现有通常通过权限的划分来限制公司不同级别员工的查询。然而,传统实现权限限制的方式主要是根据SQL((Structured Query Language,结构化查询语言)查询语句中的Select、from、where等字段和用户的权限相匹配来限制。但是,这种方式在权限匹配之后需要对查询语句进行侵入性修改才能得到符合用户权限的查询语句,容易出错,尤其是多表的联合查询及复杂的查询语句,导致查询的效率和准确率降低。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提高查询的效率和查询的准确性。的即席查询方法、装置、计算机设备和存储介质。

一种即席查询方法,所述方法包括:

接收用户的查询语句后解析所述查询语句,获取被查询数据表的表名称;

从属于所述用户的视图中确定所述被查询数据表的匹配视图;其中,属于所述用户的视图根据数据信息和用户信息生成,各视图分别匹配不同的数据表;

将所述查询语句中的所述表名称替换成所述匹配视图的视图名称,得到更新后的查询语句;

执行所述更新后的查询语句,查询获取所述匹配视图返回给用户。

在其中一个实施例中,所述数据信息包括库-表-字段元数据和字段敏感等级;所述用户信息包括用户列权限、表权限信息、用户维度权限以及用户敏感等级;根据数据信息和用户信息生成视图,包括:

根据所述库-表-字段元数据、所述字段敏感等级、所述用户列权限以及所述用户敏感等级确定用户可查看的列,并根据可查看的列生成数据选取语句;

根据所述用户维度权限、所述用户列权限以及所述表权限信息生成用于限制查询范围的条件树;

根据所述数据选取语句和所述条件树获取数据库中各数据表的元数据,根据所述元数据创建视图。

在其中一个实施例中,所述根据所述用户维度权限、所述用户列权限以及所述表权限信息生成用于限制查询范围的条件树,包括:

根据所述用户维度权限、所述用户列权限以及所述表权限信息进行遍历递归,生成用于限制查询范围的条件树。

在其中一个实施例中,所述根据所述用户维度权限、所述用户列权限以及所述表权限信息生成用于限制查询范围的条件树,包括:

根据所述用户维度权限、所述用户列权限以及所述表权限信息查询所有的权限子节点;

基于所述权限子节点回溯到权限根节点后反转,生成用于限制查询范围的条件树。

在其中一个实施例中,所述方法还包括:

当接收到变更的库-表-字段元数据时,将变更的库-表-字段元数据与原始的库-表-字段元数据进行比对;

当比对确定存在更新时,将被更新的库-表-字段元数据对应的视图更新;

当比对确定存在新增时,创建新增的库-表-字段元数据对应的视图;

当比对确定存在删除时,将被删除的库-表-字段元数据对应的视图删除。

在其中一个实施例中,所述方法还包括:

当所述数据信息中的表权限信息发生变更时,将变更后的表权限信息与原始的表权限信息进行比对;

当比对确定原始的表权限信息存在更新的敏感信息时,在所述敏感信息对应的数据表中更新所述敏感信息并更新所述数据表的视图;

当比对确定原始的表权限信息存在新增的敏感信息时,在所述敏感信息对应的数据表中插入新增的所述敏感信息并更新所述数据表的视图。

在其中一个实施例中,所述方法还包括:

当所述数据信息中的用户权限信息更新时,判断更新的用户权限信息对应的用户是否为已有用户;所述用户权限信息包括用户列权限、用户维度权限以及用户敏感等级中任一种或多种;

若不是已有用户,则根据所述用户权限信息创建新用户以及对应的视图;

若是已有用户,将更新的用户权限信息与原始的用户权限信息进行比对;

当比对确定为更改所述已有用户的用户权限信息时,更新所述已有用户原始的用户权限并根据更新的用户权限信息重新创建所述已有用户的视图;

当比对确定为新增所述已有用户的用户权限信息时,为所述已有用户插入新增的用户权限信息并重新新建所述已有用户的视图;

当比对确定为删除所述已有用户的用户权限信息时,删除所述已有用户对应的视图。

一种即席查询装置,所述装置包括:

接收模块,用于接收用户的查询语句后解析所述查询语句,获取被查询数据表的表名称;

确定模块,用于从属于所述用户的视图中确定所述查询数据表的匹配视图;其中,属于所述用户的视图根据数据信息和用户信息生成,各视图分别匹配不同的数据表;

替换模块,用于将所述查询语句中的所述表名称替换成所述匹配视图的视图名称,得到更新后的查询语句;

查询模块,用于执行所述更新后的查询语句,查询获取所述匹配视图返回给用户。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的即席查询方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的即席查询方法的步骤。

上述即席查询方法、装置、计算机设备和存储介质,在接收用户的查询语句后解析查询语句获取被查询数据表的表名称;然后从属于用户的视图中确定查询数据表的匹配视图,其中,属于用户的视图根据数据信息和用户信息生成,各视图分别匹配不同的数据表;进而将查询语句中的表名称替换成匹配视图的视图名称,得到更新后的查询语句并执行,从而查询获取匹配视图返回给用户。该方法通过建立属于用户的视图,将用户对表的查询更改为对其所属视图的查询,将传统的一表供多方查询变成各自使用自己的视图进行即席查询,从而提高了查询的效率。并且,实现视图的查询只需要简单替换名称即可,无需对查询语句做侵入性的修改,避免侵入性修改带来的出错,提高效率的同时进一步提升了查询的准确性。

附图说明

图1为一个实施例中即席查询方法的应用环境图;

图2为一个实施例中即席查询方法的流程示意图;

图3为一个实施例中视图生成的流程示意图;

图4为一个实施例中用户的区域维度权限对应条件树的示意图;

图5为一个实施例中变更视图的流程示意图;

图6为另一个实施例中变更视图的流程示意图;

图7为再一个实施例中变更视图的流程示意图;

图8为一个实施例中即席查询装置的结构框图;

图9为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的即席查询方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。服务器104接收到用户通过终端102发送的查询语句后解析查询语句,获取被查询数据表的表名称;服务器104从属于用户的视图中确定查询数据表的匹配视图;其中,属于用户的视图根据数据信息和用户信息生成,各视图分别匹配不同的数据表;服务器104将查询语句中的表名称替换成匹配视图的视图名称,得到更新后的查询语句;服务器104执行更新后的查询语句,查询获取所述匹配视图返回给用户。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种即席查询方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:

步骤S202,接收用户的查询语句后解析查询语句,获取被查询数据表的表名称。

其中,查询语句是用户通过终端发起的用户进行即席查询的SQL语句。被查询数据表的表名称携带在查询语句中,用于指定被查询的数据表。

具体地,当用户有查询需求时,通过在终端的查询界面进行相应的查询操作下发查询指令,例如用户在终端界面提供的数据表中选择此次被查询的数据表等。终端根据用户在终端的查询操作生成对应的查询语句发送给服务器。或者,也可以由用户在终端的查询界面对应的查询输入框直接输入相应的查询语句,终端获取到用户输入的查询语句后发送给服务器。当服务器接收到终端发送的用户的查询语句后,对查询语句进行解析,通过解析获取被查询数据的表名称。由于SQL语句通常有固定的语法结构,所以在解析时根据对应SQL语句的语法结构的特性从查询语句中提取表名称。

步骤S204,从属于用户的视图中确定被查询数据表的匹配视图;其中,属于用户的视图根据数据信息和用户信息生成,各视图分别匹配不同的数据表。

其中,视图是数据仓库结构中一种逻辑概念,没有做物化和加载数据操作,只能查询。视图的创建可以理解为是保存一份元数据,元数据是用于描述数据的数据。数据信息包括库-表-字段元数据(包括数据库的元数据、数据表的元数据以及字段的元数据)、字段敏感等级。用户信息是指用户的权限信息等,包括用户列权限、表权限信息、用户维度权限以及用户敏感等级。

具体地,服务器预先根据数据信息和用户信息创建属于用户信息对应用户的视图,一张视图对应于一个数据表。例如,用户对应十个数据表,属于该用户的视图就会有十张。进而,当服务器解析查询语句得到被查询数据表的表名称之后,获取属于该用户的视图。属于用户的视图可以添加用户标识,或者与用户进行映射来标识该视图对应的用户。然后,服务器从属于该用户的视图中匹配与被查询数据表对应的视图,得到匹配视图。匹配可以通过标识匹配或者元数据进行匹配。例如,数据表对应的视图携带有该数据表的表名称,或者将被查询数据表的元数据与视图保存的元数据进行比对,确定与被查询数据表的元数据相同的视图为匹配视图。

步骤S206,将查询语句中的表名称替换成匹配视图的视图名称,得到更新后的查询语句。

具体地,当服务器得到被查询数据表的匹配视图之后,服务器将查询语句中的表名称替换为匹配视图的视图名称。即,相当于删掉查询语句中的表名称后,在该表名称对应的位置添加匹配视图的视图名称。名称替换后的查询语句为更新后的查询语句。

步骤S208,执行更新后的查询语句,查询获取匹配视图返回给用户。

具体地,服务器执行更新后的查询语句,通过执行更新后的查询语句即可查询到被查询数据表对应的视图返回给到用户,完成此次的查询任务。

上述即席查询方法,在接收用户的查询语句后解析查询语句获取被查询数据表的表名称;然后从属于用户的视图中确定查询数据表的匹配视图,其中,属于用户的视图根据数据信息和用户信息生成,各视图分别匹配不同的数据表;进而将查询语句中的表名称替换成匹配视图的视图名称,得到更新后的查询语句并执行,从而查询获取匹配视图返回给用户。该方法通过建立属于用户的视图,将用户对表的查询更改为对其所属视图的查询,将传统的一表供多方查询变成各自使用自己的视图进行即席查询,从而提高了查询的效率。并且,实现视图的查询只需要简单替换名称即可,无需对查询语句做侵入性的修改,避免侵入性修改带来的出错,提高效率的同时进一步提升了查询的准确性。

在一个实施例中,如图3所示,提供一种视图生成的流程示意图。根据数据信息和用户信息生成视图的步骤,包括:根据库-表-字段元数据、字段敏感等级、用户列权限以及用户敏感等级确定用户可查看的列,并根据可查看的列生成数据选取语句;根据用户维度权限、用户列权限以及表权限信息生成用于限制查询范围的条件树;根据数据选取语句和条件树获取数据库中各数据表的元数据,根据元数据创建视图。

具体地,参考图3,服务器根据库-表-字段元数据、字段敏感等级、用户列权限以及用户敏感等级,确定在用户权限范围内所能查看的列。其中,字段敏感等级和用户敏感等级的对比可以排除用户所不能查看的字段,用户列权限能够排除用户不能查看的数据列。然后,服务器根据最终确定的用户所能查看的列生成对应的数据选取语句(select语句),即生成的select语句执行后只能够从库-表-字段元数据中获取用户查询权限范围内的数据所对应的元数据。

同时,服务器根据用户维度权限、表的权限信息(限制的是用户的行权限)以及用户的列权限生成条件语句(where语句),本实施例中生成的条件语句是树的形式。即,根据用户维度权限、表的权限信息(限制的是用户的行权限)以及用户的列权限生成树形式的条件语句,得到生成的条件树。以树的形式能够更好的隔离开权限。当数据选取语句和条件树均生成之后,数据选取语句和条件树组合得到用于创建各数据表对应视图的创建视图语句。通过执行该创建视图语句获取数据表对应的元数据生成属于该用户的各数据表的视图。

在一个实施例中,根据用户维度权限、用户列权限以及表权限信息生成用于限制查询范围的条件树,包括:根据用户维度权限、用户列权限以及表权限信息进行遍历递归,生成用于限制查询范围的条件树。

在另一个实施例中,根据用户维度权限、用户列权限以及表权限信息生成用于限制查询范围的条件树,包括:根据用户维度权限、用户列权限以及表权限信息查询所有的权限子节点;基于权限子节点回溯到权限根节点后反转,生成用于限制查询范围的条件树。

具体地,生成条件树的方式有两种,第一种方式是根据用户维度权限、用户列权限以及表权限信息一层一层进行遍历递归,即从一个节点出发往下遍历形成树支路后返回同等级的另一个节点继续往下遍历形成另一条树支路。另一种方式是根据用户维度权限、用户列权限以及表权限信息找到所有的子节点(本实施例的子节点可以理解为是最后一个节点)。然后从子节点往前回溯到根节点后反转,得到根节点。如图4所示,提供一种用户的区域维度权限对应条件树的示意图。以图4为例,回溯这种方式可以理解为是先找到子节点“青青草原街道”、“武侯区”、“绵阳市”、“乐山市”、“重庆市”和“武汉市”后回溯。例如“武汉市”回溯能够得到“湖北省”。所有子节点回溯完成后进行链表反转,得到的就是图4所示的树。可以理解为,反转之后,从左往右(从上往下)看是根节点到树子节点,反转之前,从左往右(从上往下)是子节点到根节点。

本实施例中,通过数据信息和用户信息创建用户对应的视图,便于后续通过视图进行即席查询,提高查询的效率和准确性。并且,以树的形式生成条件语句,能够更好的隔离开来权限。

在一个实施例中,还包括:当接收到变更的库-表-字段元数据时,将变更的库-表-字段元数据与原始的库-表-字段元数据进行比对;当比对确定存在更新时,将被更新的库-表-字段元数据对应的视图更新;当比对确定存在新增时,创建新增的库-表-字段元数据对应的视图;当比对确定存在删除时,将被删除的库-表-字段元数据对应的视图删除。

具体地,权限不会一成不变,当数据信息和用户信息发生变更后,为了保证视图的准确性应当及时相应地变更处理用户对应的视图。

参考图5,当库-表-字段的元数据变更时,将变更后的库-表-字段元数据与原始的库-表-字段元数据进行比对,原始的库-表-字段元数据就是当前存储在本地的元数据。通过比对,若变更后的元数据对应的数据在原始的元数据对应的数据中都存在,则确定变更是数据更新,将被更新的库-表-字段元数据对应的视图更新。若变更后的元数据存在的数据在原始的元数据对应的数据中不存在,则确定变更是数据新增,创建新增的库-表-字段元数据对应的视图。而若变更后的元数据不存在的数据在原始的元数据中存在,则确定变更是数据删除,将被删除的库-表-字段元数据对应的视图删除。本实施例中,通过元数据信息的变更相应的变更视图,确保视图的准确性。

在一个实施例中,还包括:当数据信息中的表权限信息发生变更时,将变更后的表权限信息与原始的表权限信息进行比对;当比对确定原始的表权限信息存在更新的敏感信息时,在敏感信息对应的数据表中更新敏感信息并更新数据表的视图;当比对确定原始的表权限信息存在新增的敏感信息时,在敏感信息对应的数据表中插入新增的敏感信息并更新数据表的视图。

具体地,参考图6,当表权限信息发生变更时,获取发生变更后的数据表中的敏感字段,并将变更后的表权限信息与原始的表权限信息进行比对。当变更后的表权限信息中存在而原始的表权限信息也存在时,确定变更是更新了敏感信息,则在敏感信息对应的数据表中更新敏感信息并更新数据表的视图。而当变更后的表权限中存在而原始的表权限信息不存在时,确定变更是新增了敏感信息,则在敏感信息对应的数据表中插入新增的敏感信息并更新数据表的视图。本实施例中,通过表权限信息的变更相应的变更视图,确保视图的准确性。

在一个实施例中,还包括:当数据信息中的用户权限信息更新时,判断更新的用户权限信息对应的用户是否为已有用户;用户权限信息包括用户列权限、用户维度权限以及用户敏感等级中任一种或多种;若不是已有用户,则根据用户权限信息创建新用户以及对应的视图;若是已有用户,将更新的用户权限信息与原始的用户权限信息进行比对;当比对确定为更改已有用户的用户权限信息时,更新已有用户原始的用户权限并根据更新的用户权限信息重新创建已有用户的视图;当比对确定为新增已有用户的用户权限信息时,为已有用户插入新增的用户权限信息并重新新建已有用户的视图;当比对确定为删除已有用户的用户权限信息时,删除已有用户对应的视图。

具体地,参考图7,当数据信息中的用户权限信息更新时,判断更新的用户权限信息对应的用户是否已存在,即对应的用户是否为已有用户。若用户不是已有用户,首先根据用户权限信息创建新用户并在用户创建完成之后为该用户创建对应的视图。

而当用户是已有用户时,将变更后的用户权限信息与用户原始的权限信息进行比对。通过比对若确定变更后的用户权限信息存在的权限在用户原始的权限信息中也存在,则表示变更是权限更新,进一步在本地更新已有用户原始的用户权限,并且根据更新的用户权限信息重新创建已有用户的视图。若变更后的用户权限信息存在的权限在用户原始的权限信息中不存在,则表示变更是新增已有用户的用户权限信息,进一步为已有用户插入新增的用户权限信息并重新新建已有用户的视图。而变更后的用户权限信息不存在的权限在用户原始的权限信息中存在,则表示变更是删除已有用户的用户权限信息,进一步选取与变更权限对应的库表信息后,从用户的视图中删除对应的视图。本实施例中,通过用户权限的变更相应的变更视图,确保视图的准确性。

应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图8所示,提供了一种即席查询装置,包括:接收模块802、确定模块804、替换模块806和查询模块808,其中:

接收模块802,用于接收用户的查询语句后解析查询语句,获取被查询数据表的表名称;

确定模块804,用于从属于用户的视图中确定查询数据表的匹配视图;其中,属于用户的视图根据数据信息和用户信息生成,各视图分别匹配不同的数据表;

替换模块806,用于将查询语句中的表名称替换成匹配视图的视图名称,得到更新后的查询语句;

查询模块808,用于执行更新后的查询语句,查询获取匹配视图返回给用户。

在一个实施例中,即席查询装置还包括创建模块,用于根据库-表-字段元数据、字段敏感等级、用户列权限以及用户敏感等级确定用户可查看的列,并根据可查看的列生成数据选取语句;根据用户维度权限、用户列权限以及表权限信息生成用于限制查询范围的条件树;根据数据选取语句和条件树获取数据库中各数据表的元数据,根据元数据创建视图。

在一个实施例中,创建模块还用于根据用户维度权限、用户列权限以及表权限信息进行遍历递归,生成用于限制查询范围的条件树。

在一个实施例中,创建模块还用于根据用户维度权限、用户列权限以及表权限信息查询所有的权限子节点;基于权限子节点回溯到权限根节点后反转,生成用于限制查询范围的条件树。

在一个实施例中,即席查询装置还包括更新模块,用于当接收到变更的库-表-字段元数据时,将变更的库-表-字段元数据与原始的库-表-字段元数据进行比对;当比对确定存在更新时,将被更新的库-表-字段元数据对应的视图更新;当比对确定存在新增时,创建新增的库-表-字段元数据对应的视图;当比对确定存在删除时,将被删除的库-表-字段元数据对应的视图删除。

在一个实施例中,更新模块还用于当数据信息中的表权限信息发生变更时,将变更后的表权限信息与原始的表权限信息进行比对;当比对确定原始的表权限信息存在更新的敏感信息时,在敏感信息对应的数据表中更新敏感信息并更新数据表的视图;当比对确定原始的表权限信息存在新增的敏感信息时,在敏感信息对应的数据表中插入新增的敏感信息并更新数据表的视图。

在一个实施例中,更新模块还用于当数据信息中的用户权限信息更新时,判断更新的用户权限信息对应的用户是否为已有用户;用户权限信息包括用户列权限、用户维度权限以及用户敏感等级中任一种或多种;若不是已有用户,则根据用户权限信息创建新用户以及对应的视图;若是已有用户,将更新的用户权限信息与原始的用户权限信息进行比对;当比对确定为更改已有用户的用户权限信息时,更新已有用户原始的用户权限并根据更新的用户权限信息重新创建已有用户的视图;当比对确定为新增已有用户的用户权限信息时,为已有用户插入新增的用户权限信息并重新新建已有用户的视图;当比对确定为删除已有用户的用户权限信息时,删除已有用户对应的视图。

关于即席查询装置的具体限定可以参见上文中对于即席查询方法的限定,在此不再赘述。上述即席查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储视图等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种即席查询方法。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

接收用户的查询语句后解析查询语句,获取被查询数据表的表名称;

从属于用户的视图中确定查询数据表的匹配视图;其中,属于用户的视图根据数据信息和用户信息生成,各视图分别匹配不同的数据表;

将查询语句中的表名称替换成匹配视图的视图名称,得到更新后的查询语句;

执行更新后的查询语句,查询获取匹配视图返回给用户。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据库-表-字段元数据、字段敏感等级、用户列权限以及用户敏感等级确定用户可查看的列,并根据可查看的列生成数据选取语句;根据用户维度权限、用户列权限以及表权限信息生成用于限制查询范围的条件树;根据数据选取语句和条件树获取数据库中各数据表的元数据,根据元数据创建视图。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据用户维度权限、用户列权限以及表权限信息进行遍历递归,生成用于限制查询范围的条件树。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据用户维度权限、用户列权限以及表权限信息查询所有的权限子节点;基于权限子节点回溯到权限根节点后反转,生成用于限制查询范围的条件树。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当接收到变更的库-表-字段元数据时,将变更的库-表-字段元数据与原始的库-表-字段元数据进行比对;当比对确定存在更新时,将被更新的库-表-字段元数据对应的视图更新;当比对确定存在新增时,创建新增的库-表-字段元数据对应的视图;当比对确定存在删除时,将被删除的库-表-字段元数据对应的视图删除。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当数据信息中的表权限信息发生变更时,将变更后的表权限信息与原始的表权限信息进行比对;当比对确定原始的表权限信息存在更新的敏感信息时,在敏感信息对应的数据表中更新敏感信息并更新数据表的视图;当比对确定原始的表权限信息存在新增的敏感信息时,在敏感信息对应的数据表中插入新增的敏感信息并更新数据表的视图。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当数据信息中的用户权限信息更新时,判断更新的用户权限信息对应的用户是否为已有用户;用户权限信息包括用户列权限、用户维度权限以及用户敏感等级中任一种或多种;若不是已有用户,则根据用户权限信息创建新用户以及对应的视图;若是已有用户,将更新的用户权限信息与原始的用户权限信息进行比对;当比对确定为更改已有用户的用户权限信息时,更新已有用户原始的用户权限并根据更新的用户权限信息重新创建已有用户的视图;当比对确定为新增已有用户的用户权限信息时,为已有用户插入新增的用户权限信息并重新新建已有用户的视图;当比对确定为删除已有用户的用户权限信息时,删除已有用户对应的视图。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

接收用户的查询语句后解析查询语句,获取被查询数据表的表名称;

从属于用户的视图中确定查询数据表的匹配视图;其中,属于用户的视图根据数据信息和用户信息生成,各视图分别匹配不同的数据表;

将查询语句中的表名称替换成匹配视图的视图名称,得到更新后的查询语句;

执行更新后的查询语句,查询获取匹配视图返回给用户。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据库-表-字段元数据、字段敏感等级、用户列权限以及用户敏感等级确定用户可查看的列,并根据可查看的列生成数据选取语句;根据用户维度权限、用户列权限以及表权限信息生成用于限制查询范围的条件树;根据数据选取语句和条件树获取数据库中各数据表的元数据,根据元数据创建视图。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据用户维度权限、用户列权限以及表权限信息进行遍历递归,生成用于限制查询范围的条件树。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据用户维度权限、用户列权限以及表权限信息查询所有的权限子节点;基于权限子节点回溯到权限根节点后反转,生成用于限制查询范围的条件树。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当接收到变更的库-表-字段元数据时,将变更的库-表-字段元数据与原始的库-表-字段元数据进行比对;当比对确定存在更新时,将被更新的库-表-字段元数据对应的视图更新;当比对确定存在新增时,创建新增的库-表-字段元数据对应的视图;当比对确定存在删除时,将被删除的库-表-字段元数据对应的视图删除。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当数据信息中的表权限信息发生变更时,将变更后的表权限信息与原始的表权限信息进行比对;当比对确定原始的表权限信息存在更新的敏感信息时,在敏感信息对应的数据表中更新敏感信息并更新数据表的视图;当比对确定原始的表权限信息存在新增的敏感信息时,在敏感信息对应的数据表中插入新增的敏感信息并更新数据表的视图。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当数据信息中的用户权限信息更新时,判断更新的用户权限信息对应的用户是否为已有用户;用户权限信息包括用户列权限、用户维度权限以及用户敏感等级中任一种或多种;若不是已有用户,则根据用户权限信息创建新用户以及对应的视图;若是已有用户,将更新的用户权限信息与原始的用户权限信息进行比对;当比对确定为更改已有用户的用户权限信息时,更新已有用户原始的用户权限并根据更新的用户权限信息重新创建已有用户的视图;当比对确定为新增已有用户的用户权限信息时,为已有用户插入新增的用户权限信息并重新新建已有用户的视图;当比对确定为删除已有用户的用户权限信息时,删除已有用户对应的视图。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 即席查询方法、装置、计算机设备和存储介质
  • 数据查询方法、装置、计算机设备及计算机可读存储介质
技术分类

06120112389474