一种数据查询方法、装置及设备与流程

文档序号:24411787发布日期:2021-03-26 19:39阅读:70来源:国知局
一种数据查询方法、装置及设备与流程

1.本发明涉及数据处理领域,尤其涉及一种数据查询方法、装置及设备。


背景技术:

2.随着金融系统的功能和人员不断发展壮大,相关数据的准确查询成为各种功能实现的基础。而在数据查询中,主要涉及的关键部分为数据过滤,数据过滤是指查询数据时要根据登录人员的角色、所在机构、岗位等信息,进行数据过滤,最终得到所需要的数据查询结果。
3.目前的数据查询大多是将查询条件转换成结构化查询语言(structured query language,sql)的where查询条件从数据库查询进行过滤。较为常见做法就是利用一个sql查询模板,在模板中定义sql语句条件,比如:【status=’已审核’】,然后sql条件中支持各种动态变量,比如:【usercode=’${loginusercode}
’ꢀ
or userdept=’${loginuserdept}’】,表示sql语句的条件是“人员编码字段”等于登录人员工号,“人员部门字段”等于登录人员所在部门。
4.上述实现方式对于一般需求场景是可以满足的,但遇到复杂的查询需求场景就不能满足数据查询需求,尤其对于登录人员之间的机构较为复杂,人员之间具有上下关系和/或交叉关系等树型结构情况时,更难满足数据查询需求,原因如下:数据过滤权限一般是根据角色与机构关系进行计算,角色可以直接使用sql的in计算实现,但是机构通常是一个树型结构,并且机构本身表达的就是组织架构,是最重要的数据权限载体,一个公司的组织架构图在一定程度上可以代表一种数据权限。而树型结构不像表型结构可以直接通过sql条件实现,需要从树中某一个结点出发,找到其所在的父亲结点,然后根据父亲结点的数据再寻找这个父亲结点所有子孙结点的数据,最终生成一个结果集,再拼装sql条件,是一个复杂的上下关系的多次计算,无法直接配置sql条件的。
5.综上所述,现在数据查询时若遇到这种复杂需求场景时只能通过人工编写脚本进行实现,较为复杂,实现成本较高且查询效率低。


技术实现要素:

6.有鉴于此,本发明实施例的目的在于提供一种数据查询方法、装置及设备,用以解决现有技术中满足复杂场景的数据查询实现成本高且查询效率低的问题。
7.第一方面,本发明实施例提供一种数据查询方法,所述方法包括:根据待查询用户的用户信息查找预配置的权限策略,得到目标权限策略,所述目标权限策略的主体对象与所述用户信息相匹配;根据所述目标权限策略的客体对象的首次上溯信息,确定数据的查询范围;在所述查询范围下,根据所述客体对象的二次下探信息进行数据查询,得到查询结果。
8.可选地,所述根据所述目标权限策略的客体对象的首次上溯信息,确定数据的查
询范围,包括:根据所述目标权限策略的客体对象的首次上溯机构信息,确定父亲节点的机构类型;在预配置的机构树型结构中,从当前登录用户在所述机构树型结构中对应的节点开始沿着树路径向根节点方向查找,直至找到机构类型与所述父亲节点的机构类型相同的第一节点;将所述第一节点对应的机构类型范围确定为数据的查询范围。
9.可选地,所述在所述查询范围下,根据所述客体对象的二次下探信息进行数据查询,得到查询结果,包括:在所述机构树型结构中,从所述第一节点开始沿着树路径向叶子节点方向查找,找到满足二次下探机构类型的第一候选机构节点;和/或,在所述机构树型结构中,从所述第一节点开始沿着树路径向叶子节点方向查找,找到满足二次下探扩展类型的第二候选机构节点;按照所述目标权限策略中二次下探结果处理信息,对所述第一候选机构节点和第二候选机构节点进行处理,得到目标机构节点;获取所述目标机构节点对应的数据得到查询结果。
10.可选地,所述在所述查询范围下,根据所述客体对象的二次下探信息进行数据查询,还包括:判断所述目标权限策略在下探时是否包含根节点;当下探时包括根节点,则所述第一候选机构节点和/或第二候选机构节点包括所述第一节点;当下探时不包括根节点,则所述第一候选机构节点和/或第二候选机构节点不包括所述第一节点。
11.可选地,所述在所述查询范围下,根据所述客体对象的二次下探信息进行数据查询之后,还包括:判断所述目标权限策略的候选集合是否包含子孙节点;当候选集合包含子孙节点,则继续查找所述第一候选机构节点的子节点,得到第一子节点,并将所述第一子节点并入所述第一候选机构节点,得到新的第一候选机构节点;和/或,当候选集合包含子孙节点,则继续查找所述第二候选机构节点的子节点,得到第二子节点,并将所述第二子节点并入所述第二候选机构节点,得到新的第二候选机构节点。
12.可选地,所述方法,还包括:根据人员及组织架构预先配置机构树型结构,并为每个机构节点配置对应的机构类型和扩展类型。
13.可选地,所述方法,还包括:当接收到用户输入的过程查看信息时,将数据查询的处理过程进行显示。
14.另一方面,本发明实施例还提供一种数据查询装置,所述装置,包括:策略查找模块、上溯模块、下探模块;其中,所述策略查找模块,用于根据待查询用户的用户信息查找预配置的权限策略,得
到目标权限策略,所述目标权限策略的主体对象与所述用户信息相匹配;所述上溯模块,用于根据所述目标权限策略的客体对象的首次上溯信息,确定数据的查询范围;所述下探模块,用于在所述查询范围下,根据所述客体对象的二次下探信息进行数据查询,得到查询结果。
15.可选地,所述上溯模块,具体用于根据所述目标权限策略的客体对象的首次上溯机构信息,确定父亲节点的机构类型;在预配置的机构树型结构中,从当前登录用户在所述机构树型结构中对应的节点开始沿着树路径向根节点方向查找,直至找到机构类型与所述父亲节点的机构类型相同的第一节点;将所述第一节点对应的机构类型范围确定为数据的查询范围。
16.可选地,所述下探模块,具体用于在所述机构树型结构中,从所述第一节点开始沿着树路径叶子节点方向查找,找到满足二次下探机构类型的第一候选机构节点;和/或,在所述机构树型结构中,从所述第一节点开始沿着树路径叶子节点方向查找,找到满足二次下探扩展类型的第二候选机构节点;按照所述目标权限策略中二次下探结果处理信息,对所述第一候选机构节点和第二候选机构节点进行处理,得到目标机构节点;获取所述目标机构节点对应的数据得到查询结果。
17.可选地,所述下探模块,还用于判断所述目标权限策略在下探时是否包含根节点;当下探时包括根节点,则所述第一候选机构节点和/或第二候选机构节点包括所述第一节点;当下探时不包括根节点,则所述第一候选机构节点和/或第二候选机构节点不包括所述第一节点。
18.可选地,所述下探模块,还用于判断所述目标权限策略的候选集合是否包含子孙节点;当候选集合包含子孙节点,则继续查找所述第一候选机构节点的子节点,得到第一子节点,并将所述第一子节点并入所述第一候选机构节点,得到新的第一候选机构节点;和/或,当候选集合包含子孙节点,则继续查找所述第二候选机构节点的子节点,得到第二子节点,并将所述第二子节点并入所述第二候选机构节点,得到新的第二候选机构节点。
19.可选地,所述装置,还包括:配置模块,用于根据人员及组织架构预先配置机构树型结构,并为每个机构节点配置对应的机构类型和扩展类型。
20.可选地,所述装置,还包括:过程显示模块,用于当接收到用户输入的过程查看信息时,将数据查询的处理过程进行显示。
21.另一方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的方法。
22.再一方面,本发明实施例还提供一种电子设备,其特征在于,其包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
23.上述技术方案具有如下有益效果:
本发明实施例提供一种数据查询方法、装置及设备,该数据查询方法通过根据待查询用户的用户信息查找预配置的权限策略,得到目标权限策略,所述目标权限策略的主体对象与所述用户信息相匹配;根据所述目标权限策略的客体对象的首次上溯信息,确定数据的查询范围;在所述查询范围下,根据所述客体对象的二次下探信息进行数据查询,得到查询结果。本发明实施例通过待查询用户的用户信息查询预配置的权限策略,权限策略配置有主体对象,将与该用户信息相匹配的主体对象对应的权限策略作为目标权限策略,本发明实施例中权限策略还包括客体对象,该客体对象包括首次上溯信息和二次下探信息,通过首次上溯信息确定数据的查询范围,然后在该查询范围下结合二次下探信息进行数据查询,得到最终的查询结果,根据不同需求配置不同的主体信息和客体信息,并结合首次上溯和二次下探的查询过程,不仅能够满足复杂条件的数据查询,而且较易实现、查询效率高,在实际应用过程中,还可以通过可配置接口来更改权限策略的客体对象信息,配置不同的首次上溯信息和二次下探信息,来满足不同的数据查询需求,不需要重新进行代码脚本的编写,适用性更强。
24.附图说明
25.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
26.图1是本发明实施例提供的数据查询方法的实现流程示意图;图2是本发明实施例提供的数据查询装置的结构示意图;图3是本发明实施例提供的电子设备的结构示意图;图4

图5是本发明一实施例提供的数据查询方法的配置示意图;图6

图7是本发明另一实施例提供的数据查询方法的配置示意图。
具体实施方式
27.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.为了解决现有技术中面对复杂场景的数据查询实现成本高且查询效率低的问题。本发明实施例提供一种数据查询方法,该数据查询方法通过待查询用户的用户信息查询预配置的权限策略,权限策略配置有主体对象,将与该用户信息相匹配的主体对象对应的权限策略作为目标权限策略,本发明实施例中权限策略还包括客体对象,该客体对象包括首次上溯信息和二次下探信息,通过首次上溯信息确定数据的查询范围,然后在该查询范围下结合二次下探信息进行数据查询,得到最终的查询结果,根据不同需求配置不同的主体信息和客体信息,并结合首次上溯和二次下探的查询过程,来满足复杂条件的数据查询。
29.实施例一
本发明实施例一提供一种数据查询方法,该数据查询方法的流程如图1所示,执行步骤如下:步骤101,根据待查询用户的用户信息查找预配置的权限策略,得到目标权限策略,所述目标权限策略的主体对象与所述用户信息相匹配;这里,所述主体对象包括主体机构类型和主体角色;获取待查询用户的用户信息即是获取待查询用户所属的机构类型和角色,将获取到的机构类型和角色分别与权限策略的主体对象进行匹配,当某一权限策略的主体对象包括获取到的机构类型和角色时,则该权限策略为目标权限策略;其中,主体机构类型和主体角色根据应用场景不同会有所不同,例如当本发明实施例应用于银行时,机构类型可以为总行、总行部门、分行、分行部门等等,角色可以为风险官、审计官等等。
30.步骤102,根据所述目标权限策略的客体对象的首次上溯信息,确定数据的查询范围;本发明实施例中,根据应用场景对应的机构,预先配置有该机构的机构树型结构,该机构树型结构中的节点对应一个机构类型和至少一个扩展类型;权限策略中的客体对象包括首次上溯信息和二次下探信息;其中,所述首次上溯信息是指本次数据查询在所述机构树型结构中的起始节点,该起始节点是开始数据查询的起点,相当于确定了数据的查询范围。
31.进一步地,该首次上溯信息确定的起始节点可以根据数据查询需求进行确定;在机构树型结构中,越靠近根节点,对应的用户级别越高,数据范围越大;本发明实施例中,该起始节点可以是相对于当前登录用户节点更靠近根节点,即本发明实施例所提供的数据查询方法的查询范围并不受登录人员的级别限定,还可以基于比登录人员更高级别的数据范围进行数据查询,为满足复杂数据查询需求提供了数据基础。
32.步骤103,在所述查询范围下,根据所述客体对象的二次下探信息进行数据查询,得到查询结果。
33.具体地,本步骤中,是以起始节点为起点,沿着所述机构树型结构的树路径向下(叶子节点方向)查找,找到满足二次下探信息的机构节点,并将该些机构节点对应的数据作为查询结果。
34.本发明实施例通过步骤102和步骤103,可以基于机构树型结构,在机构树路径链上任意进行往上寻找,然后进行第二次再往下寻找,往下寻找还可以根据二次下探信息来确定下探的机构类型和/或扩展类型来过滤特殊具有业务属性的计算,进而可实现各种复杂场景。
35.若没有首次上溯信息和二次下探信息的组合配置,则当前的数据查询范围只能基于当前登录用户的节点进行,如:总行、本部门、本处、本组这种且要么全有,要么全没有的情况计算,但是假如在同一个部门内,又根据角色或业务条线来计算就不行,比如“部门层级”都是“上海分行”,但一个人是要查看“财务条线”,另一个是“审计条线”,即部门层级一样,但有业务条线不同,此时可以再结合二次下探信息的业务属性,即可实现各种复杂情况的数据查询。
36.又如当前登录用户为总行级主管,如无首次上溯信息的配置,则数据查询只能到
总行,而不能先跳到全行,然后再下钻(下探)到所有类型为“事业部”或“支行”的情况,即往上寻找时,不能跳级,没有二次下探则不可以往下跨级计算。而实际情况是银行的总行领导,尤其是一些“副行长”,有的分管一些机构,有的是分管所有“事业部”,有的是分管“某些重点支行”,对于该类人员的数据查询需求,通过本发明实施例提供的上述数据查询方法是可以很好地满足的。
37.可选地,步骤102,所述根据所述目标权限策略的客体对象的首次上溯信息,确定数据的查询范围,包括:根据所述目标权限策略的客体对象的首次上溯机构信息,确定父亲节点的机构类型;这里,首次上溯机构信息可以为机构类型,用来表示数据查询的机构范围,例如,当首次上溯机构信息为总行时,则父亲节点的机构类型为总行;在预配置的机构树型结构中,从当前登录用户在所述机构树型结构中对应的节点开始沿着树路径向上(根节点方向)查找,直至找到机构类型与所述父亲节点的机构类型相同的第一节点;通常来说,首次上溯机构信息对应的机构类型范围大于当前登录节点对应的机构类型范围,而从树型结构来说,越靠近树型结构根部的节点对应的机构类型范围越大,因此需要沿着机构树型结构的树路径向上查找确定。
38.将所述第一节点对应的机构类型范围确定为数据的查询范围。即将所述第一节点的机构类型对应的数据范围确定为数据的查询范围。
39.可选地,步骤103,在所述查询范围下,根据所述客体对象的二次下探信息进行数据查询,得到查询结果,包括:在所述机构树型结构中,从所述第一节点开始沿着树路径向下(叶子节点方向)查找,找到满足二次下探机构类型的第一候选机构节点;和/或,在所述机构树型结构中,从所述第一节点开始沿着树路径向下(叶子节点方向)查找,找到满足二次下探扩展类型的第二候选机构节点;按照所述目标权限策略中二次下探结果处理信息,对所述第一候选机构节点和第二候选机构节点进行处理,得到目标机构节点;这里,所述二次下探结果处理信息包括有并集与交集两种方式;其中,并集是指将第一候选机构节点和第二候选机构节点取并集后得到的机构节点作为目标机构节点;交集是指将第一候选机构节点和第二候选机构节点取交集后得到的机构节点作为目标机构节点;比如二次下探机构类型是“分行部门”,二次下探扩展类型是“风险条线”,并集得到的目标机构节点只要满足该节点的机构类型是“分行部门”或者扩展类型是“风险条线”即可,只要满足一个即可。交集得到的目标机构节点是指该节点的机构类型是“分行部门”且扩展类型是“风险条线”,即必须同时满足这两个条件才可以。
40.获取所述目标机构节点对应的数据得到查询结果。
41.这里,对于不同的数据查询需求,二次“二次下探”有两种下探类型,而且有“交集/并集”关系,这两种类型是“机构类型”与“业务扩展类型”,分别对应于与二次下探机构类型和二次下探扩展类型。
[0042]“机构类型”是指一个机构本身的自然行政属性,比如:总行/总行部门/分行/分行部门/支行/支行部门/事业部

等,一个机构只能具有一种“机构类型”,即要么是总行、要么是分行,不能同时具有多种类型。
[0043]
但一些复杂需求场景是,几个机构都是同一种机构类型(比如:审计部/财务部/法律部,机构类型都是“分行部门”),但不同角色的登录人员却需要在这些机构类型相同的机构列表中进行区分,最典型的例子是,比如一个分行一般是有一个正职的行长,却有多个“副行长”,每个“副行长”分管不同业务条线,比如有个副行长分管“财务条线”,他可以查看“财务部”与“资金部”这两个部门的数据,有个“副行长”分管“风险条线”,他可以查看“审计部”“风险部”“合规部”这几个部门的数据,而这些部门的“机构类型”都是“分行部门”,是一样的,无法区分不同。
[0044]
此时,如果仍只配置二次下探机构类型,是无法进行数据区分,满足不了数据查询的需求的;这时就必须再为每个机构配置“业务扩展类型”,比如配置“财务部”的扩展类型是“账务条线”,“审计部”的扩展类型是“风险条线”。根据扩展类型就可以区分了。
[0045]
而一个机构可以同时配置多个“业务扩展类型”,比如“审计部”可以配置“风险条线”与“中台管理”,因为有的时候会从多种视角去看一个机构,比如从前/中/后台管理角度看一个机构,“审核部”就属于“中台管理”,从业务含义角度看,“审计部”就是“风险条线”。
[0046]“机构类型”与“扩展类型”可以取“交集”与“并集”,交集就是一个机构必须同时是“分行部门”或“风险条线”才行,而并集就是指,只要机构类型是“分行部门”或扩展类型是“风险条线”就满足。
[0047]
通过二次下探信息的二次下探机构类型和/或二次下探扩展类型的配置,能够实现更复杂的数据查询。
[0048]
可选地,步骤103,所述在所述查询范围下,根据所述客体对象的二次下探信息进行数据查询,还包括:判断所述目标权限策略在下探时是否包含根节点;当下探时包括根节点,则所述第一候选机构节点和/或第二候选机构节点包括第一节点;当下探时不包括根节点,则所述第一候选机构节点和/或第二候选机构节点不包括所述第一节点。例如,当第一节点为“上海分行”时,当下探时不包括根节点时,则表明要查询的数据只需要上海分行的子部门,而并不需要上海分行本身。
[0049]
可选地,步骤103,所述在所述查询范围下,根据所述客体对象的二次下探信息进行数据查询,还包括:判断所述目标权限策略的候选集合是否包含子孙节点;当候选集合包含子孙节点,则继续查找所述第一候选机构节点的子节点,得到第一子节点,并将所述第一子节点并入所述第一候选机构节点,得到新的第一候选机构节点;和/或,当候选集合包含子孙节点,则继续查找所述第二候选机构节点的子节点,得到第二子节点,并将所述第二子节点并入所述第二候选机构节点,得到新的第二候选机构节点;具体地,所述目标权限策略的候选集合是否包含子孙节点是指根据二次下探寻找到的结果集,是否继续再搜索这些结果集的子节点,即因为是树型结构,二次下探计算出的节点,可能本身并不是叶子节点,而是有可能本身又存在子节点。比如二次下探的机构类型是“支行”,则寻找到一些支行后,这些支行本身又有子节点,如果候选集合包含子孙节点,则需要继续把这些子孙结点也找出来,并入候选机构节点。
[0050]
可选地,所述方法,还包括:根据人员及组织架构预先配置机构树型结构,并为每个节点配置对应的机构类型和扩展类型。这里,一个节点对应一个机构类型和至少一个扩展类型。一个机构可以有多个扩展类型,扩展类型一般就是表示该机构属于什么业务管理条线,但管理条线又有多种维度的分类,所以可能存在一个机构具有多个扩展类型的情况,比如审计部的扩展类型就可能既属于“风险条线”,也属于“中台管理”。本发明实施例中增加一个扩展类型,而且一个机构可能具有多种扩展类型,是因为只根据机构类型是无法满足各种复杂的需求场景的,比如条线管理需求,例如:总行的风险条线的老总,可以查看各个分行的风险条线分管部门的数据;总行的财务条线的老总,可以查看各个分行财务条线分管部门的数据;某个副行长分管所有“中台管理”相关部门,可以查看所有中台相关部门的数据,这里的各种业务条线,是完全灵活不确定的,而且一个机构可能有多个,所以需要一种灵活可配置的机制,才可以满足各种需求。
[0051]
可选地,所述方法,还包括:当接收到用户输入的过程查看信息时,将数据查询的处理过程进行显示。
[0052]
具体地,可以接收用户在前端表格上通过鼠标右键输入的过程查看信息,以查看数据查询计算的过程。由于因为这种权限策略的实际处理过程还是比较复杂的,所以如果哪一步配置错误了,导致最终结果不对,分析原因是非常麻烦的,所以需要一种非常方便的查看日志的方法,这个日志就是把每一步详细计算的过程都输出显示出来,从而一目了然的能分析数据问题。
[0053]
可选地,所述预配置的权限策略还可以包括客体人员角色信息,该客体人员角色信息是指如果客体对象是根据主体角色进行过滤,则客体人员角色就根据需求配置对应主体角色,比如一个贷款合同,经办人的角色是“信贷专员”,如果权限策略客体人员角色配置为“信贷专员”,则该权限策略可以查看出该经办人所有办理的贷款合同数据。
[0054]
应当理解,本发明实施例中的权限策略,还可以包括附加sql条件,通过该附加sql条件来直接使用sql配置策略的功能,能够很好地兼容现有的数据查询方案;具体地,通过直接配置sql条件,兼容与覆盖业内主流模型,sql条件中也支持动态变量,比如【usercode=’${loginusercode}’】,如果本发明实施例上述首次上溯和二次下探都有配置,也配置了sql条件,就相当于做and(与)的逻辑处理。
[0055]
进一步地,当一个查询需求对应多个权限策略时,还可以通过对该多个权限策略预先配置序号进行排序,各个权限策略之间的排序,实际是在数据查询过程中根据这个顺序一条条处理计算的。
[0056]
实施例二本发明实施例二提供一种数据查询装置,该装置的结构如图2所示,包括:策略查找模块21、上溯模块22、下探模块23;其中,所述策略查找模块21,用于根据待查询用户的用户信息查找预配置的权限策略,得到目标权限策略,所述目标权限策略的主体对象与所述用户信息相匹配;所述上溯模块22,用于根据所述目标权限策略的客体对象的首次上溯信息,确定数据的查询范围;所述下探模块23,用于在所述查询范围下,根据所述客体对象的二次下探信息进
行数据查询,得到查询结果。
[0057]
可选地,所述上溯模块22,具体用于根据所述目标权限策略的客体对象的首次上溯机构信息,确定父亲节点的机构类型;在预配置的机构树型结构中,从当前登录用户在所述机构树型结构中对应的节点开始沿着树路径向根节点方向查找,直至找到机构类型与所述父亲节点的机构类型相同的第一节点;将所述第一节点对应的机构类型范围确定为数据的查询范围。
[0058]
可选地,所述下探模块23,具体用于在所述机构树型结构中,从所述第一节点开始沿着树路径叶子节点方向查找,找到满足二次下探机构类型的第一候选机构节点;和/或,在所述机构树型结构中,从所述第一节点开始沿着树路径叶子节点方向查找,找到满足二次下探扩展类型的第二候选机构节点;按照所述目标权限策略中二次下探结果处理信息,对所述第一候选机构节点和第二候选机构节点进行处理,得到目标机构节点;获取所述目标机构节点对应的数据得到查询结果。
[0059]
可选地,所述下探模块23,还用于判断所述目标权限策略在下探时是否包含根节点;当下探时包括根节点,则所述第一候选机构节点和/或第二候选机构节点包括所述第一节点;当下探时不包括根节点,则所述第一候选机构节点和/或第二候选机构节点不包括所述第一节点。
[0060]
可选地,所述下探模块23,还用于判断所述目标权限策略的候选集合是否包含子孙节点;当候选集合包含子孙节点,则继续查找所述第一候选机构节点的子节点,得到第一子节点,并将所述第一子节点并入所述第一候选机构节点,得到新的第一候选机构节点;和/或,当候选集合包含子孙节点,则继续查找所述第二候选机构节点的子节点,得到第二子节点,并将所述第二子节点并入所述第二候选机构节点,得到新的第二候选机构节点。
[0061]
进一步地,所述装置,还包括:配置模块,用于根据人员及组织架构预先配置机构树型结构,并为每个机构节点配置对应的机构类型和扩展类型。
[0062]
进一步地,所述装置,还包括:过程显示模块,用于当接收到用户输入的过程查看信息时,将数据查询的处理过程进行显示。
[0063]
本发明实施例的实现方式与实施例一的原理类似,不再进行赘述。
[0064]
本发明实施例提供一种数据查询方法、装置,该数据查询方法通过根据待查询用户的用户信息查找预配置的权限策略,得到目标权限策略,所述目标权限策略的主体对象与所述用户信息相匹配;根据所述目标权限策略的客体对象的首次上溯信息,确定数据的查询范围;在所述查询范围下,根据所述客体对象的二次下探信息进行数据查询,得到查询结果。本发明实施例通过待查询用户的用户信息查询预配置的权限策略,权限策略配置有主体对象,将与该用户信息相匹配的主体对象对应的权限策略作为目标权限策略,本发明实施例中权限策略还包括客体对象,该客体对象包括首次上溯信息和二次下探信息,通过首次上溯信息确定数据的查询范围,然后在该查询范围下结合二次下探信息进行数据查询,得到最终的查询结果,根据不同需求配置不同的主体信息和客体信息,并结合首次上溯和二次下探的查询过程,不仅能够满足复杂条件的数据查询,而且较易实现、查询效率高。
[0065]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功
能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0066]
实施例三本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述数据查询方法的各步骤。
[0067]
在一些实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:根据待查询用户的用户信息查找预配置的权限策略,得到目标权限策略,所述目标权限策略的主体对象与所述用户信息相匹配;根据所述目标权限策略的客体对象的首次上溯信息,确定数据的查询范围;在所述查询范围下,根据所述客体对象的二次下探信息进行数据查询,得到查询结果。
[0068]
本发明实施例通过待查询用户的用户信息查询预配置的权限策略,权限策略配置有主体对象,将与该用户信息相匹配的主体对象对应的权限策略作为目标权限策略,本发明实施例中权限策略还包括客体对象,该客体对象包括首次上溯信息和二次下探信息,通过首次上溯信息确定数据的查询范围,然后在该查询范围下结合二次下探信息进行数据查询,得到最终的查询结果,根据不同需求配置不同的主体信息和客体信息,并结合首次上溯和二次下探的查询过程,不仅能够满足复杂条件的数据查询,而且较易实现、查询效率高。
[0069]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0070]
实施例四本发明实施例还提供了一种电子设备,如图3所示,包括一个或多个处理器301、通信接口302、 存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信。
[0071]
存储器303,用于存放计算机程序;
处理器301,用于执行存储器303上所存放的程序时,实现上述方法的各步骤。
[0072]
上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。
[0073]
总线304包括硬件、软件或两者,用于将上述部件彼此耦接在一起。举例来说,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci

express(pci

x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
[0074]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non

volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0075]
存储器303可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器303可包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器303可包括可移除或不可移除(或固定)的介质。在特定实施例中,存储器303是非易失性固态存储器。在特定实施例中,存储器303包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。
[0076]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit, cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0077]
本发明实施例通过待查询用户的用户信息查询预配置的权限策略,权限策略配置有主体对象,将与该用户信息相匹配的主体对象对应的权限策略作为目标权限策略,本发明实施例中权限策略还包括客体对象,该客体对象包括首次上溯信息和二次下探信息,通过首次上溯信息确定数据的查询范围,然后在该查询范围下结合二次下探信息进行数据查询,得到最终的查询结果,根据不同需求配置不同的主体信息和客体信息,并结合首次上溯和二次下探的查询过程,不仅能够满足复杂条件的数据查询,而且较易实现、查询效率高。
[0078]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0079]
下面以多个具体的应用场景对上述实施例进行详细说明。
[0080]
有一个登录人员xch5,所在的机构是:xx银行

总行

总行风险部,然后各个分行都有风险部,并且风险部的机构扩展类型都包含“风险条线”,xch5的角色是“风险官”。
[0081]
然后在权限策略的明细配置时,配置登录人员用户信息,即主体机构类型是“总行”或“总行部门”,并且角色是“风险官”,客体配置的首次上溯机构范围是“全行”,二次下探机构类型是“分行”或“分行部门”,二次下探扩展类型是“风险条线”,两者取交集。
[0082]
这就是说,xch5登录后,可以查询各个分行下的风险部经办的数据。
[0083]
具体配置如下:机构配置示意图,机构配置,即总行风险部的机构类型为总行部门,分行风险部的机构类型为分行部门,各个分行风险部的“机构扩展类型”配置成“风险条线”;人员与机构配置示意图,人员与机构的关联,即xch5所在机构是“xx银行

总行

总行风险部”;人员角色配置,xch5的角色是“004/风险官”;参见图4,为权限策略配置示意图,权限策略配置,最关键的配置,即配置主体(登录用户)如果所在机构类型是“总行;总行部门”,并且角色是“风险官”,则可以查看的客体是,先首次上溯到全行,然后再二次下探所有机构类型是“分行;分行部门”,扩展类型是“风险条线”的所有子机构,并且取交集,交集得到结果集后再继续钻取寻找各结果集结点的子孙结点。
[0084]
最终运行结果,参见图5,即在一个业务功能“信贷合同查询”中,绑定前面配置的权限策略,然后把“经办机构”字段设置为机构关联字段,根据前面登录人员xch5的机构与角色属性,以及权限策略配置,最后运行的结果就是,xch5可以查询出各个分行的风险部经办的数据,比如上海分行风险部、北京分行风险部、广州分行风险部等。这些部门与登录人员的所在机构并不是直接的上下级关系,但又存在一定的逻辑关系,只是这个逻辑关系要进行先往上寻找,再往下钻取的一种数据查询过程,根据该种处理方式,这种复杂场景也是可配置的。
[0085]
在前端表格上通过鼠标右键,还可以查看数据查询的过程,具体如下,显示了上述权限策略的完整计算过程日志;模板编码:zzz_dkht_code1当前sql:select * from zzz_dkht where 1=1 and ( org_id in ('100100200','100100400','6ae53d3588db43d7973f53bda932735c','b74e350ba7fd4817923bd6797decd346') ) 。
[0086]
当前分页sql:select * from zzz_dkht where 1=1 and ( org_id in ('100100200','100100400','6ae53d3588db43d7973f53bda932735c','b74e350ba7fd4817923bd6797decd346') ) limit 0,20。
[0087]
查询追踪日志:【开始执行..分页查询,解析sql耗时[13]查询当页耗时[2]查询后加载公式等处理耗时[1]查询分页总数耗时[2]
查询完成,总耗时[18]】数据权限:【策略【001】【过滤方式=机构过滤;机构字段名=org_id;】计算过程:本策略共【3】条明细,本人所在机构【zhfxb/总行风险部】,机构类型【总行部门】,扩展类型【bl700】。
[0088]
第[1]条策略,匹配机构类型【总行部门】时,登录人员所在机构类型【总行部门】,匹配结果是【true】。
[0089]
第[1]条策略,匹配主体角色【004】,登录人员角色是【004】,匹配结果是【true】。
[0090]
第[1]条策略匹配结果【true】。
[0091]
第[2]条策略,匹配机构类型【分行部门;分行】时,登录人员所在机构类型【总行部门】,匹配结果是【false】。
[0092]
第[2]条策略,匹配主体角色【002】,登录人员角色是【004】,匹配结果是【false】。
[0093]
第[2]条策略匹配结果【false】。
[0094]
第[3]条策略,匹配主体机构类型时,因为定义的机构类型为空,所以默认为成功。
[0095]
第[3]条策略,匹配主体角色【666】,登录人员角色是【004】,匹配结果是【false】第[3]条策略匹配结果【false】。
[0096]
匹配主体结束,共匹配成功【1】条策略明细。
[0097]
开始处理机构的上溯与下探...第[1]条策略,根据上溯机构类型【全行】,找到匹配的父亲机构【100000000/xx银行】,范围内机构数【25】个,且有二次下探配置,则进行下探计算。
[0098]
第[1]条策略,根据二次下探的机构类型【分行;分行部门】,二次下探的扩展类型【bl700】从[25]个机构中【交集】过滤出【4】个机构数据【100100200/上海分行风险部;100100400/审计部;gz005/广州分行风险部;bjfxb/北京分行风险部】。
[0099]
第[1]条策略因为【目标包含子孙=y】,所以继续下钻子孙计算。
[0100]
第[1]条策略继续计算子孙结点,共找个【0】个目录结点,计算出他们子孙结点数【0】个,合并后的机构数【4】个。
[0101]
第三轮计算实际sql,只剩【1】条实际策略,过滤方式是【机构过滤】,机构字段名是【org_id】。
[0102]
第1条策略的计算方式是【机构in】,拼出的sql是【org_id in (4个机构id)】。
[0103]
策略计算过程总耗时【13】毫秒。
[0104]
本发明实施例中这种权限策略的实际计算过程还是比较复杂的,所以如果哪一步配置错误了,导致最终结果不对,分析原因是非常麻烦的,所以需要一种非常方便的查看日志的方法,这个日志就是把每一步详细计算的过程都输出来,从而一目了然的能分析数据问题。换句话说,如果没有这个日志监控功能,想分析数据问题几乎是非常困难的。
[0105]
下面是第二个例子,这个例子是在分行行长查看整个分行所有数据的场景。即有个登录用户xch6,所在机构是“xx银行

上海分行

行长办公室”,机构类型是分行部门,登录用户的角色是“副行长”,权限策略是先上溯到分行,然后再下探所有子结点,最后查询所有上海分行的数据。同样根据这同一个策略,如果是北京分行的“副行长”就可以查询北京分行的数据,如果是广州分行的“副行长”就可以查询广州分行的数据。但也不会查询到其他分行的数据。
[0106]
具体配置如下:机构配置,即行长办公室的机构类型是“分行部门”,上海分行的机构类型是“分行”。
[0107]
人员与机构关联的配合,人员与机构关系即xch6所在机构是“上海分行

行长办公室”,并不是直接与“上海分行”关联,但数据权限逻辑却是可以查看整个“上海分行”范围内的数据,即要先往上上溯到“上海分行”这一层。
[0108]
人员角色的配置,即xch6的角色是“副行长”。
[0109]
图6为权限策略明细配置示意图,即主体(登录用户)如果是分行或分行部门,角色是副行长,则查询客体对象是“首次上溯”到“分行”,二次下探两个条件都为空,即查询分行下的所有子结构,候选集合包含子孙表示钻取所有子孙结点。即相当于xch6可以查看“上海分行”所有子机构与部门的数据。
[0110]
参照图7,最终查询结果,即xch6登录后,根据其所在机构、角色、权限策略,计算出其可以查看上海分行范围内所有子机构的数据。即经办机构都是上海分行下的子机构/部门。
[0111]
同样,如果登录人员是北京分行的副行长,则自动查看北京分行内的数据,广州分行就是广州分行内的数据。无论这个登录人实际所在机构是北京分行本身还是北京分行下的某个其他部门(比如行长办公室/总经理办公室)。因为首次上溯会一直往上找,找到类型为“分行”才会停下来,然后再折返往下钻取寻找的。
[0112]
本发明实施例的权限策略计算过程日志,可通过用户通过鼠标右键输入查看信息查看权限策略详细计算过程,从中可以一目了然的清楚整个计算过程。
[0113]
用户通过鼠标右键可查看的日志如下:模板编码:zzz_dkht_code1当前sql:select * from zzz_dkht where 1=1 and ( org_id in ('100100000','100100100','100100101','100100102','100100200','100100300','100100400','f683be318bd14c988e0fcadfce0044b3') ) 。
[0114]
当前分页sql:select * from zzz_dkht where 1=1 and ( org_id in ('100100000','100100100','100100101','100100102','100100200','100100300','100100400','f683be318bd14c988e0fcadfce0044b3') ) limit 0,20。
[0115]
查询追踪日志:【开始执行..分页查询,解析sql耗时[9]查询当页耗时[3]查询后加载公式等处理耗时[0]查询分页总数耗时[2]查询完成,总耗时[14]】数据权限:【策略【001】【过滤方式=机构过滤;机构字段名=org_id;】计算过程:本策略共【3】条明细,本人所在机构【shanghaizjb/行长办公室】,机构类型【分行部门】,扩展类型【null】。
[0116]
第[1]条策略,匹配机构类型【总行部门】时,登录人员所在机构类型【分行部门】,匹配结果是【false】。
[0117]
第[1]条策略,匹配主体角色【004】,登录人员角色是【002】,匹配结果是【false】。
[0118]
第[1]条策略匹配结果【false】。
[0119]
第[2]条策略,匹配机构类型【分行部门;分行】时,登录人员所在机构类型【分行部门】,匹配结果是【true】。
[0120]
第[2]条策略,匹配主体角色【002】,登录人员角色是【002】,匹配结果是【true】。
[0121]
第[2]条策略匹配结果【true】。
[0122]
第[3]条策略,匹配主体机构类型时,因为定义的机构类型为空,所以默认为成功。
[0123]
第[3]条策略,匹配主体角色【666】,登录人员角色是【002】,匹配结果是【false】。
[0124]
第[3]条策略匹配结果【false】。
[0125]
匹配主体结束,共匹配成功【1】条策略明细。
[0126]
开始处理机构的上溯与下探...第[2]条策略,根据上溯机构类型【分行】,找到匹配的父亲机构【100100000/分行2】,范围内机构数【8】个,并且没有定义二次下探配置,则认为机构条件就是这么多。
[0127]
第三轮计算实际sql,只剩【1】条实际策略,过滤方式是【机构过滤】,机构字段名是【org_id】。
[0128]
第2条策略的计算方式是【机构in】,拼出的sql是【org_id in (8个机构id)】。
[0129]
策略计算过程总耗时【8】毫秒。
[0130]
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。
[0131]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0132]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0133]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0134]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0135]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、 电子设备及可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0136]
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1