本申请涉及到安全计算领域,具体而言,涉及一种基于sql优化器的安全计算处理方法和系统。
背景技术:
1、图1是根据相关技术的基于数据库的多方安全计算的示意图,如图1所示,xx数据提供方需要对外提供一年的社保数据、水电气数据和资助金数据的总和,该总和数据是可以对外进行提供的。数据提供方在第1步将评估规则进行导入,然后向xx市政数局的数据管理员申请数据(第2步),该数据申请是经过信用评估规则评估的,并在数据得到审批之后(第3步),从数据库中进行数据加密调用(第4步),在可信计算环境进行计算之后,导出评估结果(第5步),经过上述步骤,导出的结果就是社保数据a、水电气数据b和资助金数据c的总和,其他数据不会被泄露。
2、上述计算过程经过多方安全计算来进行处理的时候,会降低处理效率。为了解决这个问题,可以在sql处理时引入优化器。优化器(optimizer)是数据库的一个子系统。优化器的目的是按照一定的判断原则来得到它认为的目标sql在当前的情形下的最高效的执行路径,也就是为了得到目标sql的最佳执行计划。
3、在引入了优化器之后,优化器会将sql查询语句按照一定的逻辑进行执行,这样就涉及到sql语句执行的过程中,造成数据的泄露,从而使多方安全计算的安全性降低。
技术实现思路
1、本申请实施例提供了一种基于sql优化器的安全计算处理方法和系统,以至少解决引入sql优化器之后多方安全计算的安全性降低的问题。
2、根据本申请的一个方面,提供了一种基于sql优化器的安全计算处理方法,包括:接收来自用户的数据操作请求,其中,所述数据操作请求用于请求对数据库中的数据进行操作;通过sql预处理器生成所述数据操作请求对应的待定的执行计划;获取所述用户对应的访问控制策略,其中,所述访问控制策略用于确定所述用户在所述数据库的数据操作权限;根据优化规则集合中选择出优化规则,其中,选择出的优化规则中所涉及到的优化策略符合所述用户对应的访问控制策略;根据选择出的优化规则对所述待定的执行计划进行调整。
3、进一步地,在接收来自用户的数据操作请求之前,还包括如下步骤:为所述用户配置角色,其中,不同的角色对应于不同的操作权限,所述角色至少包括超级用户和普通用户,所述超级用户拥有全部操作权限,普通用户仅拥有指定操作权限。
4、进一步地,针对所述数据库中不同表和/或每个表的不同列来设置所述用户所拥有的操作权限。
5、进一步地,根据优化规则集合中选择出优化规则,其中,选择出的优化规则中所涉及到的优化策略符合所述用户对应的访问控制策略。包括如下步骤:对于所述优化规则集合中的每个优化规则,获取该优化规则中的优化策略;确定该优化规则中所涉及到的优化策略是否符合所述用户对应的访问控制策略,如果符合则选择出该优化规则。
6、根据本申请的另一个方面,还提供一种基于sql优化器的安全计算处理系统,包括:接收模块,用于接收来自用户的数据操作请求,其中,所述数据操作请求用于请求对数据库中的数据进行操作;预处理模块,用于通过sql预处理器生成所述数据操作请求对应的待定的执行计划;获取模块,用于获取所述用户对应的访问控制策略,其中,所述访问控制策略用于确定所述用户在所述数据库的数据操作权限;选择模块,用于根据优化规则集合中选择出优化规则,其中,选择出的优化规则中所涉及到的优化策略符合所述用户对应的访问控制策略;调整模块,用于根据选择出的优化规则对所述待定的执行计划进行调整。
7、进一步地,还包括:配置模块,用于在接收来自用户的数据操作请求之前,为所述用户配置角色,其中,不同的角色对应于不同的操作权限,所述角色至少包括超级用户和普通用户,所述超级用户拥有全部操作权限,普通用户仅拥有指定操作权限。
8、进一步地,针对所述数据库中不同表和/或每个表的不同列来设置所述用户所拥有的操作权限。
9、进一步地,所述选择模块用于:对于所述优化规则集合中的每个优化规则,获取该优化规则中的优化策略;确定该优化规则中所涉及到的优化策略是否符合所述用户对应的访问控制策略,如果符合则选择出该优化规则。
10、根据本申请的另一个方面,还提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述的方法步骤。
11、根据本申请的另一个方面,还提供了一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现上述的方法步骤。
12、在本申请实施例中,采用了接收来自用户的数据操作请求,其中,所述数据操作请求用于请求对数据库中的数据进行操作;通过sql预处理器生成所述数据操作请求对应的待定的执行计划;获取所述用户对应的访问控制策略,其中,所述访问控制策略用于确定所述用户在所述数据库的数据操作权限;根据优化规则集合中选择出优化规则,其中,选择出优化规则中所涉及到的优化策略符合所述用户对应的访问控制策略;根据选择出的优化规则对所述待定的执行计划进行调整。通过本申请解决了引入sql优化器之后多方安全计算的安全性降低的问题,从而提供了多方安全计算中的数据的安全性。
1.一种基于sql优化器的安全计算处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在接收来自用户的数据操作请求之前,还包括如下步骤:
3.根据权利要求1或2所述的方法,其特征在于,针对所述数据库中不同表和/或每个表的不同列来设置所述用户所拥有的操作权限。
4.根据权利要求3所述的方法,其特征在于,根据优化规则集合中选择出优化规则:
5.一种基于sql优化器的安全计算处理系统,其特征在于,包括:
6.根据权利要求5所述的系统,其特征在于,还包括:
7.根据权利要求5或6所述的系统,其特征在于,针对所述数据库中不同表和/或每个表的不同列来设置所述用户所拥有的操作权限。
8.根据权利要求7所述的系统,其特征在于,所述选择模块用于: