针对多方安全数据库的数据查询方法、装置及系统
文献发布时间:2023-06-19 11:08:20
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及针对多方安全数据库的数据查询方法、装置及系统。
背景技术
数据库是按照特定的数据结构来组织、存储和管理数据的仓库。数据库所属的数据提供方可以通过相应的数据库引擎,接收来自数据请求方的数据查询请求,根据数据查询请求对数据库中的数据进行相应的处理以获得结果数据,并将结果数据返回给数据请求方。
然而,随着智能共享时代的到来,数据提供方相互独立的提供数据服务的模式,已经难以同时兼顾共享场景和数据安全等多个方面的要求。
希望有一种新的技术方案,以期对共享场景提供安全的数据解决方案。
发明内容
本说明书一个或多个实施例中提供了一种针对安全多方数据的数据查询方法、装置及系统,对共享场景提供安全的数据解决方案,有利于对目标数据中的部分或全部隐私数据进行安全保护。
第一方面,提供了一种针对多方安全数据库的数据查询方法,应用于中心节点,包括:接收来自数据请求方的数据查询请求,所述数据查询请求涉及存储于若干数据提供方的若干目标数据;确定所述数据查询请求是否满足所述若干目标数据各自的安全要求;当所述数据查询请求满足所述若干目标数据各自的安全要求时,对所述若干目标数据进行处理以获得结果数据;向数据请求方发送所述结果数据。
在一种可能的实施方式中,所述若干目标数据的数量为多个,所述若干数据提供方的数量为多个。
在一种可能的实施方式中,所述若干目标数据中任一当前数据的安全要求,由存储所述当前数据的数据提供方设置。
在一种可能的实施方式中,所述确定所述数据查询请求是否满足所述若干目标数据各自的安全要求,包括:根据所述数据查询请求,确定将用于对所述若干目标数据进行处理以获得结果数据的逻辑计划;根据所述逻辑计划,确定所述数据查询请求是否满足所述若干目标数据各自的安全要求。
在一种可能的实施方式中,所述若干目标数据包括第一字段的数据;所述逻辑计划包括对所述第一字段进行第一逻辑操作;所述根据所述逻辑计划,确定所述数据查询请求是否满足所述若干目标数据各自的安全要求,包括:确定所述第一逻辑操作是否满足针对所述第一字段的目标安全要求。
在一种可能的实施方式中,所述第一字段来自于第一数据表;所述第一数据表中不同字段具有不同的目标安全要求。
在一种可能的实施方式中,所述目标安全要求包括,允许进行的操作方式的第一列表,和/或禁止进行的操作方式的第二列表;所述确定所述第一逻辑操作是否满足针对所述第一字段的目标安全要求,具体包括:如果所述第一逻辑操作属于第一列表,确定所述第一逻辑操作满足所述目标安全要求,和/或,如果所述第一逻辑操作属于第二列表,确定所述第一逻辑操作不满足所述目标安全要求。
在一种可能的实施方式中,所述目标安全要求为预设的多个安全等级中的当前等级;所述多个安全等级中的各安全等级,用于指示该安全等级下允许进行的若干第一操作方式,和/或,禁止进行的若干第二操作方式;所述确定所述第一逻辑操作是否满足针对所述第一字段的目标安全要求,具体包括:如果所述第一逻辑操作属于所述当前等级下的第一操作方式,确定所述第一逻辑操作满足所述目标安全要求;和/或,如果所述第一逻辑操作属于所述当前等级下的第二操作方式,确定所述第一逻辑操作不满足所述目标安全要求。
在一种可能的实施方式中,所述多个安全等级包括以下各个安全等级中的至少两个:
第一安全等级,其指示的若干第一操作方式包括以下各项操作方式中的至少一项:将对应的当前字段作为连接键、将对应的当前字段作为分组条件或排序条件的键,以及将对应的当前字段作为过滤条件的键;或者,其指示的若干第二操作方式包括明文查询对应的当前字段;
第二安全等级,其指示的若干第一操作操作方式包括:对对应的当前字段进行UNION操作以得到操作结果,通过N比1的映射方式对操作结果进行映射以得到映射结果,明文查询该映射结果;
第三安全等级,其指示的若干第一操作方式包括:通过N比1的映射方式对对应的当前字段进行映射以得到映射结果,明文查询该映射结果;
第四安全等级,其指示的若干第一操作方式包括明文查询对应的当前字段。
在一种可能的实施方式中,所述N比1的映射方式具体包括,比较运算、IN操作或者聚合操作。
第二方面,提供了一种针对多方安全数据库的数据查询装置,应用于中心节点,包括:请求接收单元,用于接收来自数据请求方的数据查询请求,所述数据查询请求涉及存储于若干数据提供方的若干目标数据;安全验证单元,用于确定所述数据查询请求是否满足所述若干目标数据各自的安全要求;请求处理单元,用于当所述数据查询请求满足所述若干目标数据各自的安全要求时,对所述若干目标数据进行处理以获得结果数据;结果返回单元,用于向数据请求方发送所述结果数据。
在一种可能的实施方式中,所述若干目标数据的数量为多个,所述若干数据提供方的数量为多个。
在一种可能的实施方式中,所述若干目标数据中任一当前数据的安全要求,由存储所述当前数据的数据提供方设置。
在一种可能的实施方式中,所述安全验证单元,用于根据所述数据查询请求,确定将用于对所述若干目标数据进行处理以获得结果数据的逻辑计划;以及,根据所述逻辑计划,确定所述数据查询请求是否满足所述若干目标数据各自的安全要求。
在一种可能的实施方式中,所述若干目标数据包括第一字段的数据;所述逻辑计划包括对所述第一字段进行第一逻辑操作;所述安全验证单元,用于确定所述第一逻辑操作是否满足针对所述第一字段的目标安全要求。
在一种可能的实施方式中,所述第一字段来自于第一数据表;所述第一数据表中不同字段具有不同的目标安全要求。
在一种可能的实施方式中,所述目标安全要求包括,允许进行的操作方式的第一列表,和/或禁止进行的操作方式的第二列表;
所述确定所述第一逻辑操作是否满足针对所述第一字段的目标安全要求,具体包括:如果所述第一逻辑操作属于第一列表,确定所述第一逻辑操作满足所述目标安全要求;和/或,如果所述第一逻辑操作属于第二列表,确定所述第一逻辑操作不满足所述目标安全要求。
在一种可能的实施方式中,所述目标安全要求为预设的多个安全等级中的当前等级;所述多个安全等级中的各安全等级,用于指示该安全等级下允许进行的若干第一操作方式,和/或,禁止进行的若干第二操作方式;
所述安全验证单元具体用于:如果所述第一逻辑操作属于所述当前等级下的第一操作方式,确定所述第一逻辑操作满足所述目标安全要求;和/或,如果所述第一逻辑操作属于所述当前等级下的第二操作方式,确定所述第一逻辑操作不满足所述目标安全要求。
在一种可能的实施方式中,所述多个安全等级包括以下各安全等级中的至少两个:
第一安全等级,其指示的若干第一操作方式包括以下各项操作方式中的至少一项:将对应的当前字段作为连接键、将对应的当前字段作为分组条件或排序条件的键,以及将对应的当前字段作为过滤条件的键;或者,其指示的若干第二操作方式包括明文查询对应的当前字段;
第二安全等级,其指示的若干第一操作操作方式包括:对对应的当前字段进行UNION操作以得到操作结果,通过N比1的映射方式对操作结果进行映射以得到映射结果,明文查询该映射结果;
第三安全等级,其指示的若干第一操作方式包括:通过N比1的映射方式对对应的当前字段进行映射以得到映射结果,明文查询该映射结果;
第四安全等级,其指示的若干第一操作方式包括明文查询对应的当前字段。
在一种可能的实施方式中,所述N比1的映射方式具体包括,比较运算、IN操作或者聚合操作。
第三方面,提供了一种针对多方安全数据库的数据管理系统,包括:中心节点,以及与所述中心节点连接的数据请求方和若干数据提供方;其中,所述数据请求方,用于向所述中心节点发送数据查询请求,所述数据查询请求涉及存储于所述若干数据提供方的若干目标数据,使所述中心节点通过第一方面中任一项所述的方法,向所述数据请求方返回结果数据。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,实现第一方面中任一项所述的方法。
第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序/指令,当所述计算机程序/指令在计算设备中执行时,计算设备执行如第一方面中任一项所述的方法。
通过本说明书一个或多个实施例中提供的方法及装置,中心节点可以根据存储于数据提供方的目标数据的安全要求,限制数据请求方对目标数据的查询情况,使数据提供方通过中心节点实现有限制的向外部共享目标数据,对共享场景提供安全的数据解决方案,有利于对目标数据中的部分或全部隐私数据进行安全保护。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书实施例中提供的技术方案的系统框架图;
图2为本说明书实施例中提供的一种针对多方案数据库的数据查询方法的流程示意图;
图3为本说明书实施例中确定数据查询请求是否满足安全要求的示意图;
图4为本说明书实施例中示例性提供的逻辑计划的示意图;
图5为本说明书实施例中提供的一种针对多方案数据库的数据查询装置的结构示意图。
具体实施方式
下面结合附图,对本说明书所提供的各个非限制性实施例进行详细描述。
图1为本说明书实施例中提供的技术方案的系统框架图。如图1所示,多方安全数据库系统可以包括中心节点10,以及与中心节点10通信连接的若干参与方,例如参与方A1、A2、A3和A4。中心节点10和各参与方可以相互独立的实现为任何具有计算和存储能力的计算设备、平台或系统。对于任意的参与方而言,其可能作为提供数据存储能力的数据提供方,具体如通过包含数据库引擎和数据库组成的数据库系统来提供数据存储能力;也可能作为向中心节点10发起数据查询请求的数据请求方,比如通过特定的计算机程序或者其配置的数据库系统中的数据库引擎发起数据查询请求。
本说明书实施例中,中心节点10可以接收来自数据请求方的数据查询请求,该数据查询请求涉及存储于若干数据提供方的若干目标数据。中心节点10在确定出该数据查询请求满足前述若干目标数据各自的安全要求时,才根据逻辑计划对前述若干目标数据进行处理以获得结果数据,并且向数据请求方返回该结果数据。如此,中心节点10可以根据存储于数据提供方的目标数据的安全要求,限制数据请求方对目标数据的查询情况,使数据提供方通过中心节点10实现有限制的向外部共享目标数据,对共享场景提供安全的数据解决方案,有利于对目标数据中的部分或全部数据进行安全保护。
下面结合图1,详细描述针对多方安全数据库的数据查询过程。
图2为本说明书实施例中提供的一种针对多方安全数据库的数据查询方法的流程图。该方法可以由中心节点10执行。
首先,在步骤21,接收来自数据请求方的数据查询请求。
数据查询请求涉及存储于若干数据提供方的若干目标数据。
数据请求方期望中心节点10根据数据查询请求返回的结果数据,通常由中心节点10对一个或多个目标数据进行处理得到。结果数据通过对多个目标数据进行处理得到时,多个目标数据可能存储于相同的数据提供方,或者还可能分散的存储于多个不同的数据提供方。
对于由数据提供方存储的目标数据,通常可以是数据提供方提供的数据库系统中的数据表。数据提供方通过相应的数据库引擎,负责与中心节点10进行信息交互,根据与中心节点10的信息交互处理相应的目标数据。
举例来说,参与方A1、A2、A3和A4分别配置数据库C1、C2、C3、C4,以及配置相应的数据库引擎B1、B2、B3、B4。假设参与方A1允许有限制的向外部共享C1中存储的isv数据表,参与方A2允许有限制的向外部共享C2中存储的ant数据表,参与方A3允许有限制的向外部共享C3中存储的special_item_list数据表。参与方A4可能通过数据库引擎B4(也可能是独立于数据库引擎的计算机程序)向中心节点10发起下文中示例的数据查询请求,使中心节点10根据该数据查询请求对isv、ant、special_item_list等数据表进行处理,获得并返回结果数据给参与方A4。在此过程中,中心节点10将会与数据库引擎B1、B2、B3进行信息交互,以期获得结果数据。
参与方A4可以向中心节点10发起的数据查询请求示例如下:
select
ant.auto_id,
isv.location as f1,
ant.precondition_time <= isv.item_time as f2,
isv.item in
(
select
special_item
from
special_item_list
) as f3
from ant cross join isv where ant.customer_id = "XXX" andisv.customer_id = "XXX".
需要说明的是,数据提供方允许有限制的向外部共享目标数据时,可以预先向中心节点10注册目标数据的元数据,目标数据的元数据通常包括目标数据自身的标识(例如作为目标数据的数据表的表名)以及目标数据包括的若干字段名,目标数据的元数据用于支持中心节点对目标数据的查找和筛选。数据提供方还可以预先设置目标数据的安全要求,并且向中心节点10提供目标数据的安全要求,使中心节点10根据目标数据的安全要求,限制数据请求方对该目标数据的访问情况。
在一个较为具体的示例中,对于目标数据包括的多个字段,数据提供方期望对多个字段的限制情况完全相同,可以配置数据表级的安全要求,其表征允许或禁止对目标数据中任意字段进行的若干操作方式。例如,参与方A1并不期望isv表中的任意字段被明文查询,但是对任意字段进行聚合操作后的聚合结果均允许被明文查询,参与方A1可以对isv数据表配置数据表级的安全要求,表征允许对isv数据表中任意字段进行的操作方式包括,对字段进行聚合操作以获得聚合/操作结果,明文查询聚合/操作结果。
在一个较为具体的示例中,对于目标数据包括的多个字段,数据提供方期望对多个字段的限制情况有所不同,可以配置字段级别的安全要求。
在一个示例中,对目标数据/数据表中的多个字段分别配置相应的安全等级,即目标数据/数据表的安全要求包括多个字段各自的安全等级。其中,对于任意字段的安全等级,用于指示允许对该字段进行的若干第一操作方式,或者,用于指示禁止对该任意字段进行的若干第二操作方式。
对于单个安全等级,其可以是以下各项安全等级中的任意一项:
第一安全等级(记为ENCRYPTED_ONLY),其指示的若干第一操作方式包括以下各项操作方式中的至少一项:将字段作为连接键、将字段作为分组条件或排序条件的键,以及将字段作为过滤条件的键;或者,其指示的若干第二操作方式包括明文查询字段;
第二安全等级(记为UNION_REDUCED_RESULT),其指示的若干第一操作操作方式包括:对字段进行UNION操作以得到操作结果,通过N比1的映射方式对操作结果进行映射以得到映射结果,明文查询映射结果;
第三安全等级(记为REDUCED_RESULT),其指示的若干第一操作方式包括:通过N比1的映射方式对字段进行映射以得到映射结果,明文查询映射结果;
第四安全等级(PLAINTEXT),其指示的若干第一操作方式包括:明文查询字段。
前述各安全等级中所述的N比1的映射方式,可以包括但不限于比较运算、IN操作或者聚合操作。其中,比较运算可以包括但不限于“<”、“<=”、“=”、“!=”、“>=”以及“>”等等,聚合操作具体可以包括但不限于“MIN”、“MAX”、“SUM”、“AVG”以及“COUNT”等等。
前述各安全等级是本说明书提供的典型方案,数据提供方还可以结合其自身的业务需求配置其它安全等级,还可以按照其它粒度来划分对字段进行的操作方式。例如,对于前述操作方式“通过N比1的映射方式对字段进行映射以得到映射结果,明文查询映射结果”,可以进一步划分为:操作方式1,通过IN操作对字段进行映射以得到映射结果,明文查询映射结果;操作方式2,通过聚合操作对字段进行映射以得到映射结果,明文查询映射结果;操作方式3,通过比较运算对字段进行映射以得到映射结果,明文查询映射结果。
基于前述示例的安全等级,假设参与方A2允许向外部有限制的共享C2中存储的ant数据表。其中,参与方A2允许对ant数据表中的auto_id字段进行明文查询,允许通过N比1的映射方式对precondition_time字段进行映射以得到映射结果,明文查询映射结果。那么,参与方A2可以通过B2向中心节点10发送如下表1所示的ant数据表的安全要求。
表1
参见上述表1示例的安全要求,其中包含了目标数据的标识(表名ant),目标数据包括的字段名auto_id和字段名precondition_time,字段auto_id的安全等级PLAINTEXT,字段precondition_time的安全等级REDUCED_RESULT,其中ant数据表的其它字段以及相应的安全等级未在表1中示出。
与前述配置目标数据中多个字段各自的安全等级类似,在另一个示例中,还可以针对目标数据/数据表中多个字段分别配置相应的安全要求,单个字段的安全要求包括,允许进行的操作方式的第一列表,和/或禁止进行的操作方式的第二列表。
接着,在中心节点已获知若干目标数据各自的安全要求的情况下,执行步骤23,确定数据查询请求是否满足若干目标数据的安全要求。
中心节点10可以对数据查询请求进行解析,获得该查询请求期望执行的若干逻辑操作。通过对若干逻辑操作进行分析可以获得对若干目标数据中每个目标数据的查询情况,进而基于对若干目标数据的查询情况来判断数据查询请求是否满足若干目标数据各自的安全要求。
在一个较为具体的示例中,请参考图3,步骤23可以包括:步骤231,根据数据查询请求,确定将用于对若干目标数据进行处理以获得结果数据的逻辑计划;步骤233,根据逻辑计划确定数据查询请求是否满足若干目标数据各自的安全要求。
中心节点10具体可以通过对数据查询请求进行解析,获得将用于对若干目标数据进行处理以获得结果数据的逻辑计划,逻辑计划中包括或者表征了查询请求期望执行的若干逻辑操作。举例来说,通过对前述由参与方A4发起的数据查询请求进行解析,可以获得如图4所示的逻辑计划。其中,节点DataScan(isv)表征读取isv数据表,节点DataScan(ant)表征读取ant数据表,节点DataScan special_item_list表征读取special_item_list数据表,其中special_item_list数据表中包括单个字段special_item。节点SELisv.customer_id=“XXX”表征以customer_id=“XXX”为筛选条件,对isv数据表中的各条数据进行筛选,筛选结果包括location、item_time、item等字段。节点SEL ant.customer_id=“XXX”表征以前述筛选条件对ant数据表中的各条数据进行筛选,筛选结果中包括auto_id、precondition_time等字段。节点Cross Join表征对其子节点获得的筛选结果做交叉连接。节点IN(item,special_item)表征根据special_item字段下的值,对交叉连接的操作结果中的item字段作IN操作,并将操作结果中的item字段映射为数据项f3。根节点Projection(auto_id,location as f1,precondition_time<= item_time as f2,f3)表征对其子节点进行相应操作后的结果作比较运算,并将location字段映射为数据项f1,将precondition_time字段映射为数据项f2。
参见图4示例的逻辑计划,逻辑计划中单个节点可以表征获取该数据查询请求期望获得的结果数据时,需要执行的一项或多项逻辑操作。
逻辑计划可以表明待返回的目标数据包括的若干数据项。参见图4示例的逻辑计划,待返回的结果数据包括auto_id、f1、f2和f3等字段。
逻辑计划可以表明待返回的结果数据包括的若干数据项的来源。参见图4示例的逻辑计划,数据项auto_id的来源为ant数据表中的auto_id字段;数据项f1的来源为isv数据表中的location字段;数据项f2的来源为ant数据表中的precondition_time字段和isv表中的item_time字段;数据项f3的来源为isv表中item字段以及special_item_list数据表中的special_item字段。其中,isv、ant和special_item_list等数据表均是目标数据;相应的,auto_id、precondition_time、item、location、item_time以及special_item等字段可以被表述为目标字段。
具体可以通过在逻辑计划中跟踪目标字段到结果数据包括的数据项之间的路径,确定出后续根据逻辑计划获得结果数据时,将对若干目标数据中的若干目标字段进行的操作方式。与之相应的,前述步骤232具体可以包括步骤2331和步骤2333。
在步骤2331,根据逻辑计划确定将对若干目标字段分别进行的操作方式。
对于属于某个目标数据的任意的目标字段(本说明书实施例中也可将其称为第一字段),可将该目标字段所属的目标数据作为起点,即将读取相应目标数据/数据表的节点作为起点,向上跟踪逻辑计划中各节点表征的对目标字段的全部逻辑操作,获得目标字段到相应的数据项之间的路径。或者,对于将获得的结果数据中包括的任意的数据项,以该数据项为起点,即以根节点为起点,向下跟踪逻辑计划中与该数据项相关的全部逻辑操作,获得该数据项到一个或多个目标字段之间的路径。
需要说明的是,将对目标字段进行的操作方式(本说明书实施例中也可将其称为第一逻辑操作),可以通过目标字段到相应的数据项之间的路径来表达,或者通过该路径上包括的将对该目标字段进行的全部逻辑操作来表达。
继续参见图4示例的逻辑计划,对于目标字段auto,对auto字段进行逻辑操作的节点包括SEL ant.customer_id=“XXX”,该节点查询到auto字段后,并未由其它节点对auto字段进行其它逻辑操作,auto字段下的字段值将会在结果数据中被明文返回给数据请求方,因此可以确定出将对auto字段进行的操作方式是明文查询auto字段。对于目标字段item,对item字段进行逻辑操作的节点包括SEL ant.customer_id=“XXX”和IN(item,special_item),查询到item字段后,接着对item字段进行了IN操作;因此可以确定出将对item字段的操作方式是,通过IN操作对item字段进行映射以得到映射结果,明文查询映射结果。类似的,可以确定出将对item_time字段和precondition_time的进行的操作方式是,通过比较运算对item_time字段和precondition_time字段进行映射以得到映射结果,明文查询映射结果。类似的,还可以确定出将对isv数据表和ant数据表中customer_id字段进行的操作方式是,将customer_id作为筛选条件的键。
确定将对目标字段进行的操作方式时,所确定的操作方式同样依赖于划分操作方式的粒度。例如,IN操作、聚合操作和比较运算均属于N比1的映射方式,对于precondition_time、item、item_time以及special_item等目标字段而言,可能确定出将用于对这些目标字段进行的操作方式是,通过N比1的映射方式对字段进行映射以得到映射结果,明文查询映射结果。
需要说明的是,相同数据查询请求可能解析出多种不同的逻辑计划,对于相同数据查询请求在其对应的各种逻辑计划中,相同目标字段到相同数据项的路径相同。例如,对于图4示例的逻辑计划,根节点表征的逻辑操作是比较运算,其子节点表征的逻辑操作是IN操作;在其它可能的逻辑计划中,表征IN操作的节点可以作为根节点,表征比较运算的节点可以作为其子节点。
在步骤2323,对于若干目标字段中的任一当前字段,确定将对当前字段进行的操作方式是否满足目标安全要求。
如前所述,当前字段(即前述的第一字段)所属的目标数据的安全要求可能是数据表级别的安全要求,目标安全要求则可以是当前字段所属目标数据的安全要求,目标安全要求表征允许或禁止对目标数据中任意字段进行的若干操作方式。如果将对当前字段进行的操作方式属于目标安全要求允许的操作方式,则将对当前字段进行的操作方式满足目标安全要求,反之则不满足目标安全要求;如果将对当前字段进行的操作方式属于目标安全要求禁止的操作方式,则将对当前字段进行的操作方式不满足目标安全要求,反之则满足目标安全要求。
如前所述,当前字段所属的目标数据的安全要求,可以包括目标数据中若干字段各自的安全要求。相应的,确定将对当前字段进行的操作方式是否满足目标安全要求,目标安全要求是指当前字段自身的安全要求。
如前所述,单个字段的安全要求可以包括该字段的安全等级,用于指示允许对该字段进行的若干第一操作方式,或者,用于指示禁止对该任意字段进行的若干第二操作方式。相应的,如果将对当前字段进行的操作方式,包含于当前字段的安全等级所指示的若干第一操作方式,则将对当前字段进行的操作方式满足当前字段的安全等级,反之则不满足当前字段的安全等级;如果将对当前字段进行的操作方式,包含于当前字段的安全等级所指示的若干第二操作方式,则将对当前字段进行的操作方式不满足当前字段的安全等级,反之则满足当前字段的安全等级。
如前所述,单个字段的安全要求可以包括,允许进行的操作方式的第一列表,和/或禁止进行的操作方式的第二列表。相应的,如果将对当前字段进行的操作方式属于第一列表,可以确定将对当前字段进行的操作方式满足当前字段的目标安全要求,反之则不满足当前字段的安全要求。如果将对当前字段进行的操作方式属于第二列表,可以确定将对当前字段进行的操作方式不满足当前字段的目标安全要求,反之则不满足当前字段的安全要求。
将对若干目标字段分别进行的操作方式均满足相应安全要求时,数据查询请求满足若干目标数据各自的安全要求。相反的,如果若干目标字段中存在任意的目标字段,将对该目标字段进行的操作方式不满足相应的安全要求时,数据查询请求不满足若干目标数据各自的安全要求。
如果确定数据查询请求不满足某个目标数据的安全要求,说明数据请求方对该目标数据的访问情况并不符合数据提供方的期望,如果中心节点10继续处理该数据查询请求并返回结果数据,则可能导致当前数据中的部分或全部被数据请求方窃取。确定数据查询请求不满足若干目标数据各自的安全要求时,中心节点10无需根据该数据查询请求向数据请求方返回结果数据。
数据查询请求满足若干目标数据各自的安全要求时,继续执行步骤25,对若干目标数据进行处理以获得结果数据。
中心节点可以根据该逻辑计划生成具体的执行计划,使存储若干目标数据的若干数据提供方共同完成该执行计划,实现对若干目标数据进行处理以获得相应的结果数据,
仍然以图4所示的逻辑计划为例,参与方A1、A2、A3和中心节点10可以共同完成该逻辑计划对应的执行计划。例如,完成执行计划的过程中,中心节点10可以和查询引擎B1、B2、B3交互相应的信息,使查询引擎B1、B2、B3分别执行节点DataScan(isv)、节点DataScan(ant)、节点DataScan special_item_list表征的逻辑操作,并且向中心节点10返回相应的操作结果;接着由中心节点执行节点Cross Join、节点IN(isv.item,special_item) as f3以及节点Projection(auto_id,location as f1,precondition_time<= item_time asf2,f3)表征的逻辑操作,获得包含auto_id、f1、f2、f3等4个数据项的结果数据。
最后,在步骤27,向数据请求方发送结果数据。
综上,对于存储于数据提供方的目标数据,中心节点10可以根据目标数据的安全要求,限制数据请求方对目标数据的查询情况,使数据提供方通过中心节点10实现有限制的向外部共享目标数据,对共享场景提供安全的数据解决方案,有利于保证目标数据中包含的隐私数据的安全。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种针对多方安全数据库的数据查询装置,应用于中心节点。如图5所示,该装置包括:请求接收单元51,用于接收来自数据请求方的数据查询请求,所述数据查询请求涉及存储于若干数据提供方的若干目标数据;安全验证单元53,用于确定所述数据查询请求是否满足所述若干目标数据各自的安全要求;请求处理单元55,用于当所述数据查询请求满足所述若干目标数据各自的安全要求时,对所述若干目标数据进行处理以获得结果数据;结果返回单元57,用于向数据请求方发送所述结果数据。
在一种可能的实施方式中,所述若干目标数据的数量为多个,所述若干数据提供方的数量为多个。
在一种可能的实施方式中,所述若干目标数据中任一当前数据的安全要求,由存储所述当前数据的数据提供方设置。
在一种可能的实施方式中,所述安全验证单元53,用于根据所述数据查询请求,确定将用于对所述若干目标数据进行处理以获得结果数据的逻辑计划;以及,根据所述逻辑计划,确定所述数据查询请求是否满足所述若干目标数据各自的安全要求。
在一种可能的实施方式中,所述若干目标数据包括第一字段的数据;所述逻辑计划包括对所述第一字段进行第一逻辑操作;所述安全验证单元53,用于确定所述第一逻辑操作是否满足针对所述第一字段的目标安全要求。
在一种可能的实施方式中,所述第一字段来自于第一数据表;所述第一数据表中不同字段具有不同的目标安全要求。
在一种可能的实施方式中,所述目标安全要求包括,允许进行的操作方式的第一列表,和/或禁止进行的操作方式的第二列表;
所述安全验证单元53,具体用于:如果所述第一逻辑操作属于第一列表,确定所述第一逻辑操作满足所述目标安全要求;和/或,如果所述第一逻辑操作属于第二列表,确定所述第一逻辑操作不满足所述目标安全要求。
在一种可能的实施方式中,所述目标安全要求为预设的多个安全等级中的当前等级;所述多个安全等级中的各安全等级,用于指示该安全等级下允许进行的若干第一操作方式,和/或,禁止进行的若干第二操作方式;
所述安全验证单元53具体用于:如果所述第一逻辑操作属于所述当前等级下的第一操作方式,确定所述第一逻辑操作满足所述目标安全要求;和/或,如果所述第一逻辑操作属于所述当前等级下的第二操作方式,确定所述第一逻辑操作不满足所述目标安全要求。
在一种可能的实施方式中,所述多个安全等级包括以下各个安全等级中的至少两个:
第一安全等级,其指示的若干第一操作方式包括以下各项操作方式中的至少一项:将对应的当前字段作为连接键、将对应的当前字段作为分组条件或排序条件的键,以及将对应的当前字段作为过滤条件的键;或者,其指示的若干第二操作方式包括明文查询对应的当前字段;
第二安全等级,指示的若干第一操作操作方式包括:对对应的当前字段进行UNION操作以得到操作结果,通过N比1的映射方式对操作结果进行映射以得到映射结果,明文查询该映射结果;
第三安全等级,指示的若干第一操作方式包括:通过N比1的映射方式对对应的当前字段进行映射以得到映射结果,明文查询该映射结果;
第四安全等级,指示的若干第一操作方式包括明文查询对应的当前字段。
在一种可能的实施方式中,所述N比1的映射方式具体包括,比较运算、IN操作或者聚合操作。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种针对多方安全数据库的数据管理系统,包括:中心节点,以及与所述中心节点连接的数据请求方和若干数据提供方;其中,所述数据请求方用于向所述中心节点发送数据查询请求,所述数据查询请求涉及存储于所述若干数据提供方的若干目标数据,使所述中心节点通过本说明书实施例中提供的由中心节点执行的方法,向所述数据请求方返回结果数据。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能所对应的计算机程序存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令/代码进行传输,以便这些功能所对应的计算机程序被计算机执行时,通过计算机实现本说明书任意一个实施例中所述的方法。
本说明书实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算设备中执行时,计算设备执行本说明书任意一个实施例中提供的针对多方安全数据库的数据查询方法。
本说明书实施例中还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本说明书任意一个实施例中提供的针对多方安全数据库的数据查询方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例中相同、相似的部分互相参见即可,每个实施例中重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
- 针对多方安全数据库的数据查询方法、装置及系统
- 数据查询方法、装置及多方安全数据库