CN111400355B - 一种数据查询方法及装置 - Google Patents
一种数据查询方法及装置 Download PDFInfo
- Publication number
- CN111400355B CN111400355B CN202010215066.8A CN202010215066A CN111400355B CN 111400355 B CN111400355 B CN 111400355B CN 202010215066 A CN202010215066 A CN 202010215066A CN 111400355 B CN111400355 B CN 111400355B
- Authority
- CN
- China
- Prior art keywords
- query
- authority
- data
- account
- target group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000013475 authorization Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 241000282813 Aepyceros melampus Species 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/282—Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种数据查询方法及装置,首先响应客户端发送的数据查询请求,从权限数据库中查询所述客户端对应的账号的查询权限;其次,若未查询到账号的查询权限,则确定账号所属的至少一个目标组;然后,根据账号所属的目标组,以及预先获取的权限查询配置信息,确定目标组对应的至少一个目标账号的查询权限;最后,根据目标组对应的至少一个目标账号的查询权限,以及数据查询请求携带的查询内容,确定数据查询请求的查询结果,并将查询结果返回至客户端。与现有技术相比,本申请能够通过设置具有对应账号和查询权限的目标组,使数据具有较高的安全性,并通过从权限数据库中的查询权限,提高数据的易用性。
Description
技术领域
本申请涉及计算机技术领域,尤其是涉及一种数据查询方法及装置。
背景技术
在生活与工作过程中会产生大量的数据,有些数据中包含了极大的价值,是企业或个人宝贵的资产,在用户需要使用数据时,通常会通过数据查询引擎对目标数据进行查询,这一过程中,保证数据的安全性,成为了一项重要的工作。然而,在保护数据安全的同时,通常会使数据的查询调用复杂化,难以使数据具有良好的易用性,因此,如何保证数据查询过程的安全性,又保证数据的易用性,成为了一个亟待解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种数据查询方法及装置,能够在数据查询过程中,使数据具有较高的安全性和易用性。
第一方面,本申请实施例提供一种数据查询方法,所述方法包括:
响应客户端发送的数据查询请求,从权限数据库中查询所述客户端对应的账号的查询权限;
若未查询到所述账号的查询权限,则确定所述账号所属的至少一个目标组;每个目标组具有对应的账号和查询权限;
根据所述账号所属的目标组,以及预先获取的权限查询配置信息,确定所述目标组对应的至少一个目标账号的查询权限;
根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。
在一种可能的实施方式中,所述方法还包括:
将所述目标组对应的至少一个目标账号的查询权限作为所述客户端对应的账号的查询权限,储存在所述权限数据库中。
在一种可能的实施方式中,从权限数据库中查询所述客户端对应的账号的查询权限之后,所述方法还包括:
若查询到所述客户端对应的账号的查询权限,则根据所述客户端对应的账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。
在一种可能的实施方式中,所述确定所述账号所属的至少一个目标组,包括:
根据所述权限查询配置信息中的轻量级目录访问协议LDAP服务器的地址信息,从所述LDAP服务器中获取所述账号所属的至少一个目标组。
在一种可能的实施方式中,所述根据所述账号所属的目标组,以及预先获取的权限查询配置信息,确定所述目标组对应的至少一个目标账号的查询权限,包括:
根据所述权限查询配置信息中的Sentry服务器的地址信息,从所述Sentry服务器中获取所述目标组对应的至少一个目标账号的查询权限。
在一种可能的实施方式中,所述根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,包括:
若所述查询内容在任一所述目标账号对应的查询权限允许的查询范围内,则将所述查询内容对应的目标数据作为查询结果。
在一种可能的实施方式中,所述方法还包括获取所述权限查询配置信息的步骤:
按照预设时间周期,从配置中心拉取所述权限查询配置信息;和/或,在检测到所述权限查询配置信息的更新信号的情况下,从配置中心拉取所述权限查询配置信息。
在一种可能的实施方式中,在响应客户端发送的数据查询请求之前,所述方法还包括:
利用Kerberos网络授权协议对所述客户端对应的账号进行身份认证,并在认证通过后执行响应客户端发送的数据查询请求的步骤。
第二方面,本申请实施例还提供一种数据查询装置,包括:
查询模块,用于响应客户端发送的数据查询请求,从权限数据库中查询所述客户端对应的账号的查询权限;
第一确定模块,用于在未查询到所述账号的查询权限时,确定所述账号所属的至少一个目标组;每个目标组具有对应的账号和查询权限;
第二确定模块,用于根据所述账号所属的目标组,以及预先获取的权限查询配置信息,确定所述目标组对应的至少一个目标账号的查询权限;
第三确定模块,用于根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。
在一种可能的实施方式中,所述装置还包括:
储存模块,用于将所述目标组对应的至少一个目标账号的查询权限作为所述账号的查询权限,储存在所述权限数据库中。
在一种可能的实施方式中,所述装置还包括:
第四确定模块,用于在查询到所述客户端对应的查询权限时,根据所述客户端对应的账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。
在一种可能的实施方式中,所述第一确定模块具体用于:
根据所述权限查询配置信息中的轻量级目录访问协议LDAP服务器的地址信息,从所述LDAP服务器中获取所述账号所属的至少一个目标组。
在一种可能的实施方式中,所述第二确定模块具体用于:
根据所述权限查询配置信息中的Sentry服务器的地址信息,从所述Sentry服务器中获取所述目标组对应的至少一个目标账号的查询权限。
在一种可能的实施方式中,所述第三确定模块在根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果时,具体用于:
若所述查询内容在任一所述目标账号对应的查询权限允许的查询范围内,则将所述查询内容对应的目标数据作为查询结果。
在一种可能的实施方式中,所述装置还包括:
获取模块,用于按照预设时间周期,从配置中心拉取所述权限查询配置信息;和/或,在检测到所述权限查询配置信息的更新信号的情况下,从配置中心拉取所述权限查询配置信息。
在一种可能的实施方式中,所述装置还包括:
身份认证模块,用于利用Kerberos网络授权协议对所述客户端对应的账号进行身份认证。
第三方面,本申请实施例还提供一种电子设备,包括存储介质、与存储介质通信的处理器和总线。存储介质存储有处理器可执行的机器可读指令。当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行所述机器可读指令,可以执行以下操作:
响应客户端发送的数据查询请求,从权限数据库中查询所述客户端对应的账号的查询权限;
若未查询到所述账号的查询权限,则确定所述账号所属的至少一个目标组;每个目标组具有对应的账号和查询权限;
根据所述客户端所属的目标组,以及预先获取的权限查询配置信息,确定所述目标组对应的至少一个目标账号的查询权限;
根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。
在一种可能的实施方式中,处理器执行所述机器可读指令时,可以执行以下操作:
将所述目标组对应的至少一个目标账号的查询权限作为所述客户端对应的账号的查询权限,储存在所述权限数据库中。
在一种可能的实施方式中,处理器执行所述机器可读指令时,可以执行以下操作:
若查询到所述客户端对应的账号的查询权限,则根据所述客户端对应的账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。
在一种可能的实施方式中,处理器执行所述机器可读指令时,可以执行以下操作:
根据所述权限查询配置信息中的轻量级目录访问协议LDAP服务器的地址信息,从所述LDAP服务器中获取所述账号所属的至少一个目标组。
在一种可能的实施方式中,处理器执行所述机器可读指令时,可以执行以下操作:
根据所述权限查询配置信息中的Sentry服务器的地址信息,从所述Sentry服务器中获取所述目标组对应的至少一个目标账号的查询权限。
在一种可能的实施方式中,处理器执行所述机器可读指令时,可以执行以下操作:
若所述查询内容在任一所述目标账号对应的查询权限允许的查询范围内,则将所述查询内容对应的目标数据作为查询结果。
在一种可能的实施方式中,处理器执行所述机器可读指令时,可以执行以下操作:
按照预设时间周期,从配置中心拉取所述权限查询配置信息;和/或,在检测到所述权限查询配置信息的更新信号的情况下,从配置中心拉取所述权限查询配置信息。
在一种可能的实施方式中,处理器执行所述机器可读指令时,可以执行以下操作:
利用Kerberos网络授权协议对所述客户端对应的账号进行身份认证,并在认证通过后执行响应客户端发送的数据查询请求的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的数据查询方法的步骤。
本申请实施例提供的数据查询方法及装置,首先响应客户端发送的数据查询请求,从权限数据库中查询所述客户端对应的账号的查询权限;其次,若未查询到所述账号的查询权限,则确定所述账号所属的至少一个目标组;每个目标组具有对应的账号和查询权限;然后,根据所述账号所属的目标组,以及预先获取的权限查询配置信息,确定所述目标组对应的至少一个目标账号的查询权限;最后,根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。与现有技术相比,本申请能够通过设置具有对应账号和查询权限的目标组,使数据具有较高的安全性,并通过从权限数据库中的查询权限,提高数据的易用性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种数据查询方法的流程图;
图2示出了本申请实施例所提供的另一种数据查询方法的流程图;
图3示出了本申请实施例所提供的一种数据查询装置的结构示意图;
图4示出了本申请实施例所提供的另一种数据查询装置的结构示意图;
图5示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
首先,为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“Presto数据查询***”,给出以下实施方式。对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。虽然本申请主要围绕Presto数据查询***进行描述,但是应该理解,这仅是一个示例性实施例。
Presto是一款数据查询引擎,可以支持异构数据***,如MySQL数据***、Hive数据***、Kudu数据***,等能够整合这些分散在不同数据***的数据。
经研究发现,现有的数据查询方法中,在保护数据安全的同时,通常会使数据的查询调用复杂化,难以使数据具有良好的易用性,因此,如何保证数据查询过程的安全性,又保证数据的易用性,成为了一个亟待解决的问题。
基于此,本申请实施例提供了一种数据查询方法,能够在数据查询过程中,使数据具有较高的安全性和易用性。
请参阅图1,图1为本申请实施例所提供的一种数据查询方法的流程图。如图1中所示,本申请实施例提供的数据查询方法,包括:
S101、响应客户端发送的数据查询请求,从权限数据库中查询所述客户端对应的账号的查询权限。
该步骤中,在接收到客户端发送的数据查询请求后,可以先在权限数据库中查询客户端对应的账号的查询权限,若查询到了客户端对应的账号的查询权限,则根据查询权限与查询内容,确定数据查询请求对应的查询结果。
其中,权限数据库可以是Redis(Remote Dictionary Server远程字典服务)数据库,权限数据库中可以储存有多个客户端对应的账号的查询权限,储存的查询权限可以具有有效期,在有效期内能够正常使用,在有效期过后,权限数据库可以将其删除,或将其标记为失效。查询权限可以是预先储存的,也可以是在下述确定查询权限的步骤之后,将其储存进入权限数据库中的。
S102、若未查询到所述账号的查询权限,则确定所述账号所属的至少一个目标组;每个目标组具有对应的账号和查询权限。
该步骤中,若未查询到客户端对应的账号的查询权限,或查询到的查询权限已过期,则可以根据数据查询请求中携带的用户标识,确定客户端对应的账号所属的目标组。
其中,客户端对应的账号可以属于一个或多个目标组,每个目标组中也可以包括一个或多个账号,每个目标组可以对应一个账号,不同的账号具有不同的查询权限。
具体的,可以通过访问LDAP轻量目录访问协议服务器,获取客户端对应的账号所属的目标组,LDAP服务器可以储存多个目标组,每个目标组中包括一个或多个客户端对应的账号。
S103、根据所述账号所属的目标组,以及预先获取的权限查询配置信息,确定所述目标组对应的至少一个目标账号的查询权限。
该步骤中,在确定客户端对应的账号所属的目标组后,可以先根据预先获取的查询配置信息,确定Sentry服务器的地址,并访问Sentry服务器确定所述目标组对应的至少一个目标账号的查询权限。
其中,Sentry是适用于Hadoop(分布式文件***,HDFS)生态环境、基于角色的授权管理***,可以模块化集成到HDFS、Hive(基于Hadoop的数据仓库工具)、Impala(查询***)等数据库中形成强耦合的权限管理***。
这里,通过预先获取到的权限查询配置信息,可以将Sentry与Presto数据查询***分离开来,使其相互独立,不受彼此的影响,即使Sentry服务器在进行维护和更新时需要重新启动,也不需要将Presto数据查询***一同重启,灵活性较高。
S104、根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。
该步骤中,在确定客户端对应的账号所属的目标组对应的至少一个目标账号的查询权限之后,可以将确定的查询权限与数据查询请求中携带的查询内容进行比较,若查询内容在查询权限的允许范围内,则将查询内容对应的目标数据作为查询结果,并将其返回至客户端;若查询内容不在查询权限的允许范围内,则返回权限不足或查询失败的查询结果。
其中,查询内容可以是一个或多个关键词,可以包括查询的数据源名称、数据类型、数据名称等,供查询的数据源可以包括MySQL数据源、Hive数据源、Hbase数据源等。
在一种可能的实施方式中,所述方法还包括:
将所述目标组对应的至少一个目标账号的查询权限作为所述客户端对应的账号的查询权限,储存在所述权限数据库中。
在确定了客户端所属的目标组对应的至少一个目标账号的查询权限后,可以将其作为客户端对应的账号的查询权限,储存在权限数据库中,并设置预设时间长度的有效期,以备后续再接收到该客户端的数据查询请求时,直接调用,减少与Sentry服务器之间的资源交互,并在Sentry服务器进行维护和更新时提供权限查询。
在一种可能的实施方式中,从权限数据库中查询所述客户端对应的查询权限之后,所述方法还包括:
若查询到所述客户端对应的账号的查询权限,则根据所述客户端对应的账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。
该步骤中,若从权限数据库中查询到了客户端对应的账号的查询权限,则直接对比客户端对应的账号的查询权限与查询内容,若在允许范围内,则利用Presto查询引擎,将查询内容对应的目标数据作为查询结果返回至客户端;若不在允许范围内,则返回查询失败或权限不足的查询结果。
在一种可能的实施方式中,所述确定所述账号所属的至少一个目标组,包括:
根据所述权限查询配置信息中的轻量级目录访问协议LDAP服务器的地址信息,从所述LDAP服务器中获取所述账号所属的至少一个目标组。
其中,权限查询配置信息可以包括LDAP服务器的地址信息,在未查询到客户端的查询权限时,可以根据LDAP服务器的地址信息,访问LDAP服务器,并从中获取客户端对应的账号所属的目标组。
这里,通过设置LDAP服务器,可以将大量的客户端对应的账号分配为数量较少的目标组,能够精简账号权限的设置,减少资源消耗。
在一种可能的实施方式中,所述根据所述客户端对应的账号所属的目标组,以及预先获取的权限查询配置信息,确定所述目标组对应的至少一个目标账号的查询权限,包括:
根据所述权限查询配置信息中的Sentry服务器的地址信息,从所述Sentry服务器中获取所述目标组对应的至少一个目标账号的查询权限。
其中,权限查询配置信息还可以包括Sentry服务器的地址信息,在确定客户端对应的账号所属的目标组后,可以访问Sentry服务器,获取目标组对应的目标账号的查询权限。
在一种可能的实施方式中,所述根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,包括:
若所述查询内容在任一所述目标账号对应的查询权限允许的查询范围内,则将所述查询内容对应的目标数据作为查询结果。
在一种可能的实施方式中,所述方法还包括获取所述权限查询配置信息的步骤:
按照预设时间周期,从配置中心拉取所述权限查询配置信息;和/或,在检测到所述权限查询配置信息的更新信号的情况下,从配置中心拉取所述权限查询配置信息。
其中,配置中心可以根据具体需求生成权限查询配置信息,权限查询配置信息中可以包括LDAP服务器的地址信息、Sentry服务器的地址信息、权限数据库中储存的查询权限的有效期、权限数据库的地址信息等。
该步骤中,在拉取到权限查询配置信息后,可以按照权限查询配置信息的指示进行参数配置,示例性的,可以将权限查询配置信息中的查询权限的有效期发送给权限数据库,使其按照权限查询配置信息,为储存的查询权限配置有效期。
在一种可能的实施方式中,在响应客户端发送的数据查询请求之前,所述方法还包括:
利用Kerberos网络授权协议对所述客户端对应的账号进行身份认证,并在认证通过后执行响应客户端发送的数据查询请求的步骤。
其中,Kerberos是一种网络认证协议,可通过密钥***为客户机/服务器应用程序提供认证服务。
请参阅图2,图2为本申请另一实施例提供的数据查询方法的流程图。如图2中所示,本申请实施例提供的数据查询方法,首先通过外部客户端向Presto客户端提交查询,查询接口通过Kerberos对外部客户端进行用户认证,在认证通过后进行***级鉴权,向Redis查询外部客户端的查询权限,若查询到则确认查询内容是否在查询权限的允许范围内,并进行数据源级鉴权;若未查询到查询权限,则根据从配置中心拉取到的权限查询配置信息,访问LDAP服务器确定查询请求对应的用户所属的用户组,再向Sentry服务器查询用户组对应的角色和权限,再根据查询到的角色和权限确定查询内容是否在允许范围内,在允许范围内则进行数据源级鉴权;数据源级鉴权是查询内容对应的数据源的鉴权逻辑,可以根据具体情况设置,若通过数据源级鉴权,则调用查询引擎,从数据源中提取出查询内容对应的数据,并将其封装返回,通过查询接口返回给外部客户端;若未通过***级去安全控制或数据源级安全控制,则返回查询失败或权限不足的查询结果。
本申请实施例提供的数据查询方法,首先响应客户端发送的数据查询请求,从权限数据库中查询所述客户端对应的账号的查询权限;其次,若未查询到所述账号的查询权限,则确定所述账号所属的至少一个目标组;每个目标组具有对应的账号和查询权限;然后,根据所述账号所属的目标组,以及预先获取的权限查询配置信息,确定所述目标组对应的至少一个目标账号的查询权限;最后,根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。与现有技术相比,本申请能够通过设置具有对应账号和查询权限的目标组,使数据具有较高的安全性,并通过从权限数据库中的查询权限,提高数据的易用性。
请参阅图3、图4,图3为本申请实施例所提供的一种数据查询装置的结构示意图,图4为本申请实施例所提供的另一种数据查询装置的结构示意图。如图3中所示,所述数据查询装置300包括:
查询模块310,用于响应客户端发送的数据查询请求,从权限数据库中查询所述客户端对应的账号的查询权限;
第一确定模块320,用于在未查询到所述账号的查询权限时,确定所述账号所属的至少一个目标组;每个目标组具有对应的账号和查询权限;
第二确定模块330,用于根据所述账号所属的目标组,以及预先获取的权限查询配置信息,确定所述目标组对应的至少一个目标账号的查询权限;
第三确定模块340,用于根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。
如图4所示,在一种可能的实施方式中,所述数据查询装置400包括:查询模块410、第一确定模块420、第二确定模块430、第三确定模块440、储存模块450,所述储存模块450用于:
将所述目标组对应的至少一个目标账号的查询权限作为所述客户端的查询权限,储存在所述权限数据库中。
在一种可能的实施方式中,所述数据查询装置400还包括:
第四确定模块460,用于在查询到所述客户端对应的账号的查询权限时,根据所述客户端对应的账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。
在一种可能的实施方式中,所述第一确定模块420具体用于:
根据所述权限查询配置信息中的轻量级目录访问协议LDAP服务器的地址信息,从所述LDAP服务器中获取所述账号所属的至少一个目标组。
在一种可能的实施方式中,所述第二确定模块430具体用于:
根据所述权限查询配置信息中的Sentry服务器的地址信息,从所述Sentry服务器中获取所述目标组对应的至少一个目标账号的查询权限。
在一种可能的实施方式中,所述第三确定模块440在根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果时,具体用于:
若所述查询内容在任一所述目标账号对应的查询权限允许的查询范围内,则将所述查询内容对应的目标数据作为查询结果。
在一种可能的实施方式中,所述数据查询装置400还包括:
获取模块470,用于按照预设时间周期,从配置中心拉取所述权限查询配置信息;和/或,在检测到所述权限查询配置信息的更新信号的情况下,从配置中心拉取所述权限查询配置信息。
在一种可能的实施方式中,所述数据查询装置400还包括:
身份认证模块480,用于利用Kerberos网络授权协议对所述客户端对应的账号进行身份认证。
本申请实施例提供的数据查询装置,首先响应客户端发送的数据查询请求,从权限数据库中查询所述客户端对应的查询权限;其次,若未查询到所述账号的查询权限,则确定所述账号所属的至少一个目标组;每个目标组具有对应的账号和查询权限;然后,根据所述账号所属的目标组,以及预先获取的权限查询配置信息,确定所述目标组对应的至少一个目标账号的查询权限;最后,根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。与现有技术相比,本申请能够通过设置具有对应账号和查询权限的目标组,使数据具有较高的安全性,并通过从权限数据库中的查询权限,提高数据的易用性。
请参阅图5,图5为本申请实施例所提供的一种电子设备的结构示意图。如图5中所示,所述电子设备500包括处理器510、存储器520和总线530。
所述存储器520存储有所述处理器510可执行的机器可读指令,当电子设备500运行时,所述处理器510与所述存储器520之间通过总线530通信,所述机器可读指令被所述处理器510执行时,可以执行以下操作:
响应客户端发送的数据查询请求,从权限数据库中查询所述客户端对应的账号的查询权限;
若未查询到所述账号的查询权限,则确定所述账号所属的至少一个目标组;每个目标组具有对应的账号和查询权限;
根据所述账号所属的目标组,以及预先获取的权限查询配置信息,确定所述目标组对应的至少一个目标账号的查询权限;
根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。
在一种可能的实施方式中,处理器510执行所述机器可读指令时,可以执行以下操作:
将所述目标组对应的至少一个目标账号的查询权限作为所述客户端对应的账号的查询权限,储存在所述权限数据库中。
在一种可能的实施方式中,处理器510执行所述机器可读指令时,可以执行以下操作:
若查询到所述账号的查询权限,则根据所述账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述客户端。
在一种可能的实施方式中,处理器510执行所述机器可读指令时,可以执行以下操作:
根据所述权限查询配置信息中的轻量级目录访问协议LDAP服务器的地址信息,从所述LDAP服务器中获取所述账号所属的至少一个目标组。
在一种可能的实施方式中,处理器510执行所述机器可读指令时,可以执行以下操作:
根据所述权限查询配置信息中的Sentry服务器的地址信息,从所述Sentry服务器中获取所述目标组对应的至少一个目标账号的查询权限。
在一种可能的实施方式中,处理器510执行所述机器可读指令时,可以执行以下操作:
若所述查询内容在任一所述目标账号对应的查询权限允许的查询范围内,则将所述查询内容对应的目标数据作为查询结果。
在一种可能的实施方式中,处理器510执行所述机器可读指令时,可以执行以下操作:
按照预设时间周期,从配置中心拉取所述权限查询配置信息;和/或,在检测到所述权限查询配置信息的更新信号的情况下,从配置中心拉取所述权限查询配置信息。
在一种可能的实施方式中,处理器510执行所述机器可读指令时,可以执行以下操作:
利用Kerberos网络授权协议对所述客户端对应的账号进行身份认证,并在认证通过后执行响应客户端发送的数据查询请求的步骤。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1以及图2所示方法实施例中的数据查询方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据查询方法,其特征在于,应用于Presto数据查询***,所述方法包括:
响应外部客户端发送的数据查询请求,从权限数据库中查询所述外部客户端对应的账号的查询权限;
若未查询到所述账号的查询权限,则确定所述账号所属的至少一个目标组;每个目标组具有对应的账号和查询权限;
根据预先获取的权限查询配置信息,确定Sentry服务器的地址信息,并访问所述Sentry服务器以确定所述目标组对应的至少一个目标账号的查询权限;
根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述外部客户端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述目标组对应的至少一个目标账号的查询权限作为所述外部客户端对应的账号的查询权限,储存在所述权限数据库中。
3.根据权利要求1所述的方法,其特征在于,从权限数据库中查询所述外部客户端对应的账号的查询权限之后,所述方法还包括:
若查询到所述外部客户端对应的账号的查询权限,则根据所述外部客户端对应的账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述外部客户端。
4.根据权利要求1所述的方法,其特征在于,所述确定所述账号所属的至少一个目标组,包括:
根据所述权限查询配置信息中的轻量级目录访问协议LDAP服务器的地址信息,从所述LDAP服务器中获取所述账号所属的至少一个目标组。
5.根据权利要求1所述的方法,其特征在于,所述根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,包括:
若所述查询内容在任一所述目标账号对应的查询权限允许的查询范围内,则将所述查询内容对应的目标数据作为查询结果。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括获取所述权限查询配置信息的步骤:
按照预设时间周期,从配置中心拉取所述权限查询配置信息;和/或,在检测到所述权限查询配置信息的更新信号的情况下,从配置中心拉取所述权限查询配置信息。
7.根据权利要求1所述的方法,其特征在于,在响应外部客户端发送的数据查询请求之前,所述方法还包括:
利用Kerberos网络授权协议对所述外部客户端对应的账号进行身份认证,并在认证通过后执行响应外部客户端发送的数据查询请求的步骤。
8.一种数据查询装置,其特征在于,应用于Presto数据查询***,所述装置包括:
查询模块,用于响应外部客户端发送的数据查询请求,从权限数据库中查询所述外部客户端对应的账号的查询权限;
第一确定模块,用于在未查询到所述账号的查询权限时,确定所述账号所属的至少一个目标组;每个目标组具有对应的账号和查询权限;
第二确定模块,用于根据预先获取的权限查询配置信息,确定Sentry服务器的地址信息,并访问所述Sentry服务器以确定所述目标组对应的至少一个目标账号的查询权限;
第三确定模块,用于根据所述目标组对应的至少一个目标账号的查询权限,以及所述数据查询请求携带的查询内容,确定所述数据查询请求的查询结果,并将所述查询结果返回至所述外部客户端。
9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至7任一所述的数据查询方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任一所述的数据查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010215066.8A CN111400355B (zh) | 2020-03-24 | 2020-03-24 | 一种数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010215066.8A CN111400355B (zh) | 2020-03-24 | 2020-03-24 | 一种数据查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400355A CN111400355A (zh) | 2020-07-10 |
CN111400355B true CN111400355B (zh) | 2024-01-30 |
Family
ID=71432873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010215066.8A Active CN111400355B (zh) | 2020-03-24 | 2020-03-24 | 一种数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400355B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800463B (zh) * | 2021-02-02 | 2022-06-24 | 天津五八到家货运服务有限公司 | 信息处理方法、装置及*** |
CN112861183A (zh) * | 2021-03-29 | 2021-05-28 | 中信银行股份有限公司 | 一种应用于presto的数据权限管理方法及*** |
CN113904859B (zh) * | 2021-10-20 | 2024-03-01 | 京东科技信息技术有限公司 | 安全组源组信息管理方法、装置、存储介质及电子设备 |
CN114281849B (zh) * | 2022-03-02 | 2022-06-03 | 北京新唐思创教育科技有限公司 | 数据查询方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843256A (zh) * | 2012-05-11 | 2012-12-26 | 摩卡软件(天津)有限公司 | 一种基于轻型目录访问协议(ldap)的it***管理方法 |
CN105656949A (zh) * | 2016-04-01 | 2016-06-08 | 浪潮(北京)电子信息产业有限公司 | 一种网络文件***的访问权限控制方法及*** |
CN107315782A (zh) * | 2017-06-08 | 2017-11-03 | 北京奇艺世纪科技有限公司 | 一种数据查询方法及装置 |
CN109246140A (zh) * | 2018-10-26 | 2019-01-18 | 平安科技(深圳)有限公司 | 域权限管理方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106506239B (zh) * | 2016-12-09 | 2020-02-11 | 上海斐讯数据通信技术有限公司 | 在组织单位域中进行认证的方法及*** |
-
2020
- 2020-03-24 CN CN202010215066.8A patent/CN111400355B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843256A (zh) * | 2012-05-11 | 2012-12-26 | 摩卡软件(天津)有限公司 | 一种基于轻型目录访问协议(ldap)的it***管理方法 |
CN105656949A (zh) * | 2016-04-01 | 2016-06-08 | 浪潮(北京)电子信息产业有限公司 | 一种网络文件***的访问权限控制方法及*** |
CN107315782A (zh) * | 2017-06-08 | 2017-11-03 | 北京奇艺世纪科技有限公司 | 一种数据查询方法及装置 |
CN109246140A (zh) * | 2018-10-26 | 2019-01-18 | 平安科技(深圳)有限公司 | 域权限管理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111400355A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400355B (zh) | 一种数据查询方法及装置 | |
US8590030B1 (en) | Credential seed provisioning system | |
EP3561636B1 (en) | Record level data security | |
CN111698228A (zh) | ***访问权限授予方法、装置、服务器及存储介质 | |
CN111181975B (zh) | 一种账号管理方法、装置、设备及存储介质 | |
CN108289098B (zh) | 分布式文件***的权限管理方法和装置、服务器、介质 | |
CN110059110B (zh) | 业务数据安全处理方法、装置、计算机设备和存储介质 | |
EP4092547A1 (en) | Sensitive data service access | |
US11010348B2 (en) | Method and system for managing and securing subsets of data in a large distributed data store | |
US10650153B2 (en) | Electronic document access validation | |
US20070022091A1 (en) | Access based file system directory enumeration | |
CN109726041B (zh) | 恢复虚拟机磁盘中的文件的方法、设备和计算机可读介质 | |
CN111464487B (zh) | 访问控制方法、装置及*** | |
CN113395271A (zh) | 一种云计算平台中数据安全访问方法及云计算平台 | |
CN113779545A (zh) | 数据跨进程共享的方法、终端设备及计算机可读存储介质 | |
CN106330836B (zh) | 一种服务端对客户端的访问控制方法 | |
JP7100563B2 (ja) | 匿名化システムおよび匿名化方法 | |
WO2017040570A1 (en) | System and method for authentication | |
WO2018004703A1 (en) | Sensitive date service storage | |
CN111324799B (zh) | 搜索请求的处理方法及装置 | |
WO2013148995A1 (en) | Dynamic directory controls | |
CN110990844B (zh) | 基于内核的云数据保护方法、云服务器、*** | |
EP2959424B1 (en) | Systems and methodologies for controlling access to a file system | |
CN111200645A (zh) | 业务请求处理方法、装置、设备及可读存储介质 | |
CN109495432B (zh) | 一种匿名账户的鉴权方法及服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |