[发明专利]用于控制数据查询的方法和装置有效
| 申请号: | 201811359471.6 | 申请日: | 2018-11-15 |
| 公开(公告)号: | CN109582691B | 公开(公告)日: | 2023-04-07 |
| 发明(设计)人: | 侯志贞;季石磊 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
| 主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2455;G06F21/62 |
| 代理公司: | 北京英赛嘉华知识产权代理有限责任公司 11204 | 代理人: | 王达佐;马晓亚 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 控制 数据 查询 方法 装置 | ||
1.一种用于控制数据查询的方法,包括:
基于待执行的结构化查询语言SQL语句,确定目标字段和分别与所述目标字段对应的目标函数集合、目标数据表,包括:对SQL语句中的SELECT子句和FROM子句进行分析,确定目标字段和分别与目标字段对应的目标函数集合、目标数据表,其中,所述目标字段是所述SQL语句所指向的数据所关联的字段,若所述目标函数集合不是空集合,则所述目标函数集合中的目标函数是所述SQL语句中的作用于所述目标字段的函数,所述目标数据表是所述目标字段所归属的数据表;
获取所述目标数据表预先关联的字段描述信息,包括:基于所述目标数据表的数据表名称和所述目标数据表所归属的数据库的数据库名称,获取所述目标数据表预先关联的字段描述信息,其中,所述字段描述信息用于描述所述目标数据表中的字段的使用方式;
基于所述字段描述信息,对所述目标字段和所述目标函数集合进行分析,确定所述目标函数集合中的函数是否是允许作用于所述目标字段的函数,以确定是否允许查询所述SQL语句所指向的数据。
2.根据权利要求1所述的方法,其中,所述字段描述信息还用于描述所述目标数据表中的字段的类别;以及
所述基于所述字段描述信息,对所述目标字段和所述目标函数集合进行分析,确定所述目标函数集合中的函数是否是允许作用于所述目标字段的函数,以确定是否允许查询所述SQL语句所指向的数据,包括:
基于所述字段描述信息,确定所述目标字段是否归属于目标类别;
响应于确定所述目标字段归属于所述目标类别,基于所述目标函数集合,确定是否允许查询所述数据。
3.根据权利要求2所述的方法,其中,所述基于所述目标函数集合,确定是否允许查询所述数据,包括:
确定所述目标函数集合是否为空集合;
响应于确定所述目标函数集合是空集合,确定不允许查询所述数据。
4.根据权利要求3所述的方法,其中,所述基于所述目标函数集合,确定是否允许查询所述数据,还包括:
响应于确定所述目标函数集合不是空集合,基于所述字段描述信息,确定所述目标函数集合中的目标函数是否均是允许作用于所述目标字段的函数;
响应于确定所述目标函数集合中的目标函数不均是允许作用于所述目标字段的函数,确定不允许查询所述数据。
5.根据权利要求1-4之一所述的方法,其中,所述基于待执行的结构化查询语言SQL语句,确定目标字段和分别与所述目标字段对应的目标函数集合、目标数据表,包括:
对所述SQL语句进行词法分析和语法分析,生成抽象语法树;
对所述抽象语法树进行分析,生成至少一个查询对象,其中,所述至少一个查询对象包括与所述SQL语句所对应的每层查询相对应的查询对象,查询对象包括第一属性和第二属性,第一属性用于表征数据表的表别名到数据表的语法部分的映射关系,第二属性用于表征查询内容的查询别名到查询内容的语法部分的映射关系;
对所述至少一个查询对象进行分析,确定所述目标字段、所述目标函数集合和所述目标数据表。
6.根据权利要求5所述的方法,其中,所述对所述至少一个查询对象进行分析,确定所述目标字段、所述目标函数集合和所述目标数据表,包括:
按由内到外的查询次序,依次对所述SQL语句所对应的每层查询执行以下分析操作:确定该层查询是否包括子查询;若否,则对该层查询所对应的查询对象中的第一属性和第二属性的属性值进行分析,确定该层查询的查询内容所关联的字段的字段信息,生成与该层查询相关联的字段信息列表,其中,字段信息包括字段名称、分别与所述字段名称对应的函数信息和数据表信息;
对于所述SQL语句所对应的最外层查询所关联的字段信息列表中的字段信息,将该字段信息中的字段名称所指示的字段确定为目标字段,将该字段信息中的数据表信息所指示的数据表确定为与该目标字段对应的目标数据表,以及基于该字段信息中的函数信息生成与该目标字段对应的目标函数集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811359471.6/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





