用于控制数据查询的方法和装置制造方法及图纸

技术编号:20797010 阅读:64 留言:0更新日期:2019-04-06 10:36
本申请实施例公开了用于控制数据查询的方法和装置。该方法的一具体实施方式包括:基于待执行的结构化查询语言SQL语句,确定目标字段和分别与目标字段对应的目标函数集合、目标数据表;获取目标数据表预先关联的字段描述信息,其中,字段描述信息用于描述目标数据表中的字段的使用方式;基于字段描述信息,对目标字段和目标函数集合进行分析,确定是否允许查询SQL语句所指向的数据。该实施方式有效利用了字段描述信息,实现了对字段的使用方式的控制,因此可以确保数据的安全性。

Method and device for controlling data query

The embodiment of this application discloses a method and device for controlling data query. One specific implementation of the method includes: determining the target field and target function set and target data table corresponding to the target field respectively based on the structured query language SQL statement to be executed; obtaining the field description information pre-associated with the target data table, in which the field description information is used to describe the use of the field in the target data table; and describing information based on the field. The target field and the set of target functions are analyzed to determine whether queries are allowed to query the data to which the SQL statement refers. The implementation method effectively utilizes field description information, realizes the control of field usage mode, and thus ensures the security of data.

【技术实现步骤摘要】
用于控制数据查询的方法和装置
本申请实施例涉及计算机
,具体涉及用于控制数据查询的方法和装置。
技术介绍
目前,对数据的访问控制一般设有两种权限,即能访问和不能访问。如果某数据不能访问,则对该数据的任何计算都是拒绝的。如果某数据能访问,则对该数据的任何计算都是允许的。例如,不允许某个分析人员访问员工表的工资字段,则该分析人员便无法进行计算平均工资等操作。如果允许某个分析人员访问员工表的工资字段,则该分析人员便能看到每个员工的工资,存在工资数据泄露的危险。
技术实现思路
本申请实施例提出了用于控制数据查询的方法和装置。第一方面,本申请实施例提供了一种用于控制数据查询的方法,该方法包括:基于待执行的结构化查询语言SQL语句,确定目标字段和分别与目标字段对应的目标函数集合、目标数据表;获取目标数据表预先关联的字段描述信息,其中,字段描述信息用于描述目标数据表中的字段的使用方式;基于字段描述信息,对目标字段和目标函数集合进行分析,确定是否允许查询SQL语句所指向的数据。在一些实施例中,字段描述信息还用于描述目标数据表中的字段的类别;以及基于字段描述信息,对目标字段和目标函数集合进行分析,确本文档来自技高网...

【技术保护点】
1.一种用于控制数据查询的方法,包括:基于待执行的结构化查询语言SQL语句,确定目标字段和分别与所述目标字段对应的目标函数集合、目标数据表;获取所述目标数据表预先关联的字段描述信息,其中,所述字段描述信息用于描述所述目标数据表中的字段的使用方式;基于所述字段描述信息,对所述目标字段和所述目标函数集合进行分析,确定是否允许查询所述SQL语句所指向的数据。

【技术特征摘要】
1.一种用于控制数据查询的方法,包括:基于待执行的结构化查询语言SQL语句,确定目标字段和分别与所述目标字段对应的目标函数集合、目标数据表;获取所述目标数据表预先关联的字段描述信息,其中,所述字段描述信息用于描述所述目标数据表中的字段的使用方式;基于所述字段描述信息,对所述目标字段和所述目标函数集合进行分析,确定是否允许查询所述SQL语句所指向的数据。2.根据权利要求1所述的方法,其中,所述字段描述信息还用于描述所述目标数据表中的字段的类别;以及所述基于所述字段描述信息,对所述目标字段和所述目标函数集合进行分析,确定是否允许查询所述SQL语句所指向的数据,包括:基于所述字段描述信息,确定所述目标字段是否归属于目标类别;响应于确定所述目标字段归属于所述目标类别,基于所述目标函数集合,确定是否允许查询所述数据。3.根据权利要求2所述的方法,其中,所述基于所述目标函数集合,确定是否允许查询所述数据,包括:确定所述目标函数集合是否为空集合;响应于确定所述目标函数集合是空集合,确定不允许查询所述数据。4.根据权利要求3所述的方法,其中,所述基于所述目标函数集合,确定是否允许查询所述数据,还包括:响应于确定所述目标函数集合不是空集合,基于所述字段描述信息,确定所述目标函数集合中的目标函数是否均是允许作用于所述目标字段的函数;响应于确定所述目标函数集合中的目标函数不均是允许作用于所述目标字段的函数,确定不允许查询所述数据。5.根据权利要求1-4之一所述的方法,其中,所述基于待执行的结构化查询语言SQL语句,确定目标字段和分别与所述目标字段对应的目标函数集合、目标数据表,包括:对所述SQL语句进行词法分析和语法分析,生成抽象语法树;对所述抽象语法树进行分析,生成至少一个查询对象,其中,所述至少一个查询对象包括与所述SQL语句所对应的每层查询相对应的查询对象,查询对象包括第一属性和第二属性,第一属性用于表征数据表的表别名到数据表的语法部分的映射关系,第二属性用于表征查询内容的查询别名到查询内容的语法部分的映射关系;对所述至少一个查询对象进行分析,确定所述目标字段、所述目标函数集合和所述目标数据表。6.根据权利要求5所述的方法,其中,所述对所述至少一个查询对象进行分析,确定所述目标字段、所述目标函数集合和所述目标数据表,包括:按由内到外的查询次序,依次对所述SQL语句所对应的每层查询执行以下分析操作:确定该层查询是否包括子查询;若否,则对该层查询所对应的查询对象中的第一属性和第二属性的属性值进行分析,确定该层查询的查询内容所关联的字段的字段信息,生成与该层查询相关联的字段信息列表,其中,字段信息包括字段名称、分别与所述字段名称对应的函数信息和数据表信息;对于所述SQL语句所对应的最外层查询所关联的字段信息列表中的字段信息,将该字段信息中的字段名称所指示的字段确定为目标字段,将该字段信息中的数据表信息所指示的数据表确定为与该目标字段对应的目标数据表,以及基于该字段信息中的函数信息生成与该目标字段对应的目标函数集合。7.根据权利要求6所述的方法,其中,所述分析操作的步骤还包括:响应于确定该层查询包括子查询,基于该子查询所关联的字段信息列表,对该层查询所对应的查询对象中的第一属性和第二属性的属性值进行分析,确定该层查询的查询内容所关联的字段的字段信息,生成与该层查询相关联的字段信息列表。8.根据权利要求5所述的方法,其中,在所述对所述抽象语法树进行分析,生成至少一个查询对象之后,所述方法还包括:对于所述至少一个查询对象中的查询对象,对该查询对象中的第一属性的属性值进行数据表信息提取,基于提取出的数据表信息获取字段描述信息,生成用于表征该数据表信息所指示的数据表与该字段描述信息之间的对应关系的对应关系信息。9.根据权利要求8所述的方法,其中,所述获取所述目标数据表预先关联字段描述信息,包括:从所生成的对应关系信息中查找出用于表征目标数据表与其所关联的字段描述信息之间的对应关系的对应关系信息;从查找到的对应关系信息中获取目标数据表所关联的字段描述信息。10.根据权利要求1所述的方法,其中,所述方法还包括:响应于确定不允许查询所述数据,执行提醒操作。11.一种用于控制数据查询的装置,包括:第一确定单元,被配置成基于待执行的结构化查询语言SQL语句,确定...

【专利技术属性】
技术研发人员:侯志贞季石磊
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

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

1