一种数据库操作的处理方法和系统转让专利
申请号 : CN202111189665.8
文献号 : CN113641424B
文献日 : 2022-02-01
发明人 : 杨海峰 , 高强花
申请人 : 北京安华金和科技有限公司
摘要 :
权利要求 :
1.一种数据库操作的处理方法,其特征在于,包括:第一客户端接收到来自预定进程的对数据库进行操作的操作请求,其中,所述第一客户端内配置有第一环境变量,所述第一环境变量用于将所述操作请求转向预先加载的库中的库函数上,所述预先加载的库中的库函数与数据库的库中的库函数名称相同,所述第一客户端为所述数据库的客户端;
通过所述预先加载的库中的库函数获取所述操作请求对应的操作内容;
所述第一客户端将所述操作请求转发给第二客户端,其中,所述第二客户端用于将所述操作请求转发给所述数据库,所述第二客户端内配置有第二环境变量,所述第二环境变量用于将通过所述第二客户端发起的所述操作请求转向所述数据库的库中的库函数上,所述第二环境变量还被所述数据库使用。
2.根据权利要求1所述的方法,其特征在于,还包括:将所述第二客户端的属性修改为不可执行;
将修改所述第二客户端的属性的权限配置给所述第一客户端。
3.根据权利要求1至2中任一项所述的方法,其特征在于,所述第一客户端将所述操作请求转发给第二客户端包括:
对所述操作内容进行校验,在校验成功的情况下,通过所述第一客户端将所述操作请求转发给所述第二客户端。
4.根据权利要求3所述的方法,其特征在于,还包括:在校验失败的情况下,通过所述预先加载的库函数结束所述操作请求。
5.一种数据库操作的处理系统,其特征在于,所述系统包括第一客户端,所述第一客户端为数据库的客户端,所述第一客户端包括:接收模块,用于接收到来自预定进程的对数据库进行操作的操作请求,其中,所述第一客户端内配置有第一环境变量,所述第一环境变量用于将所述操作请求转向预先加载的库中的库函数上,所述预先加载的库中的库函数与数据库的库中的库函数名称相同;
获取模块,用于通过所述预先加载的库中的库函数获取所述操作请求对应的操作内容;
转发模块,用于将所述操作请求转发给第二客户端,其中,所述第二客户端用于将所述操作请求转发给所述数据库,其中,所述第二客户端内配置有第二环境变量,所述第二环境变量用于将通过所述第二客户端发起的所述操作请求转向所述数据库的库中的库函数上,所述第二环境变量还被所述数据库使用。
6.根据权利要求5所述的系统,其特征在于,所述系统还包括:修改模块,用于将所述第二客户端的属性修改为不可执行;
第四配置模块,用于将修改所述第二客户端的属性的权限配置给所述第一客户端。
7.根据权利要求5至6中任一项所述的系统,其特征在于,所述第一客户端还包括:校验模块,用于对所述操作内容进行校验,在校验成功的情况下,通过所述第一客户端将所述操作请求转发给所述第二客户端。
8.根据权利要求7所述的系统,其特征在于,所述校验模块还用于在校验失败的情况下,通过所述预先加载的库函数结束所述操作请求。
说明书 :
一种数据库操作的处理方法和系统
技术领域
背景技术
的,因此也就无法就程序之间的操作交互进行监控,也无法实现对于操作内容的审计,使得
程序之间的操作交互存在安全风险。
库,其中,上述预加载数据库中存储有与系统操作所需调用的操作函数的同名函数;在上述
预加载数据库中查找到与上述目标操作对应的目标函数的情况下,控制上述目标进程调用
上述预加载数据库中的上述目标函数;从上述目标函数中获取上述目标操作的操作内容。
态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。通过这
个环境变量,可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的
函数库。
该方案中,使用了LD_PRELOAD之后,不仅仅影响了数据库客户端的操作,还有可能影响数据
库的相关程序,这可能会导致数据库工作出现异常。
发明内容
环境变量,所述第一环境变量用于所述操作请求转向预先加载的库中的库函数上,所述预
先加载的库函数与数据库的库中的库函数名称相同,所述第一客户端为所述数据库的客户
端;通过所述预加载的库中的库函数获取所述操作请求对应的操作内容;所述第一客户端
将所述操作请求转发给第二客户端,其中,所述第二客户端用于将所述操作请求转发给所
述数据库,所述第二客户端内配置有第二环境变量,所述第二环境变量用于将通过所述第
二客户端发起的所述操作请求转向所述数据库的库中的库函数上,所述第二环境变量还被
所述数据库使用。
环境变量下正常工作;修改所述第二客户端的访问地址从第一地址修改为第二地址;将所
述第二地址配置给所述第一客户端,其中,所述第一客户端使用所述第二地址与所述第二
客户端交互;将所述第一地址配置给所述第一客户端。
二客户端。
收到来自预定进程的对数据库进行操作的操作请求,其中,所述第一客户端内配置有第一
环境变量,所述第一环境变量用于所述操作请求转向预先加载的库中的库函数上,所述预
先加载的库函数与数据库的库中的库函数名称相同;获取模块,用于通过所述预加载的库
中的库函数获取所述操作请求对应的操作内容;转发模块,用于将所述操作请求转发给第
二客户端,其中,所述第二客户端用于将所述操作请求转发给所述数据库,其中,所述第二
客户端内配置有第二环境变量,所述第二环境变量用于将通过所述第二客户端发起的所述
操作请求转向所述数据库的库中的库函数上,所述第二环境变量还被所述数据库使用。
所述第二客户端的访问地址从第一地址修改为第二地址;第二配置模块,用于将所述第二
地址配置给所述第一客户端,其中,所述第一客户端使用所述第二地址与所述第二客户端
交互;第三配置模块,用于将所述第一地址配置给所述第一客户端。
作请求转向预先加载的库中的库函数上,所述预先加载的库函数与数据库的库中的库函数
名称相同,所述第一客户端为所述数据库的客户端;通过所述预加载的库中的库函数获取
所述操作请求对应的操作内容;所述第一客户端将所述操作请求转发给第二客户端,其中,
所述第二客户端用于将所述操作请求转发给所述数据库,其中,所述第二客户端内配置有
第二环境变量,所述第二环境变量用于将通过所述第二客户端发起的所述操作请求转向所
述数据库的库中的库函数上,所述第二环境变量还被所述数据库使用。通过本申请解决了
改变环境变量有可能导致数据库工作出现异常的问题,起到了即使改变了环境变量也可以
使数据库正常工作的效果。
附图说明
具体实施方式
同于此处的顺序执行所示出或描述的步骤。
的库函数上,预先加载的库函数与数据库的库中的库函数名称相同,第一客户端为数据库
的客户端;预先加载的库可以包括静态库和/或动态库,其中静态库在程序编译时会被连接
到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目
标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
客户端发起的操作请求转向数据库的库中的库函数上,第二环境变量还被数据库使用。
以理解为套在第二客户端之前的一个壳,第一客户端中可以重新配置第一环境变量,该环
境变量可以将操作请求转到预先加载的库的库函数上,而不是调用数据库中的库的库函
数。因此,通过上述步骤解决了改变环境变量有可能导致数据库工作出现异常的问题,起到
了即使改变了环境变量也可以使数据库正常工作的效果。
户端进行了隐藏,然后;将第二地址配置给第一客户端,其中,第一客户端使用第二地址与
第二客户端交互;将第一地址配置给第一客户端。由于其他进程或者程序均是使用第一地
址调用数据库客户端的,因此,所有的操作请求会直接发送给第一客户端。
属性修改为不可执行;将修改第二客户端的属性的权限配置给第一客户端。通过该可选方
式,就只有第一客户端能够运行第二客户端了。
可以保存预定进程的名称和/或标识信息,以及预定进行发起操作请求的时间,这些内容均
可以保存下来进行审计。或者,还可以对操作内容进行校验,如果操作内容存在风险,则可
以进行相应的处理。在该可选实施方式中,对操作内容进行校验,在校验成功的情况下,通
过第一客户端将操作请求转发给第二客户端。在校验失败的情况下,通过预先加载的库函
数结束操作请求。
函数为例,执行权限可以但不限于是,操作内容可以是对数据库中的预定表或者预定字段
有没有执行权限,确定操作内容符合执行权限,操作内容通过验证。当目标函数获取的操作
内容是在数据库写入新的数据,确定操作内容不符合执行权限,则操作内容未通过验证。
况下,按照调用优先级通过下一级调用接口查找目标函数。
技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计
算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动
态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可
擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器
(CD‑ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他
磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文
中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据
信号和载波。
可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方
框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。在该
实施例中也提供了这种系统,该系统可以被称为数据库操作的处理系统,该系统包括第一
客户端,第一客户端为数据库的客户端,第一客户端包括:接收模块,用于接收到来自预定
进程的对数据库进行操作的操作请求,其中,第一客户端内配置有第一环境变量,第一环境
变量用于操作请求转向预先加载的库中的库函数上,预先加载的库函数与数据库的库中的
库函数名称相同;获取模块,用于通过预加载的库中的库函数获取操作请求对应的操作内
容;转发模块,用于将操作请求转发给第二客户端,其中,第二客户端用于将操作请求转发
给数据库,其中,第二客户端内配置有第二环境变量,第二环境变量用于将通过第二客户端
发起的操作请求转向数据库的库中的库函数上,第二环境变量还被数据库使用。
从第一地址修改为第二地址;第二配置模块,用于将第二地址配置给第一客户端,其中,第
一客户端使用第二地址与第二客户端交互;第三配置模块,用于将第一地址配置给第一客
户端。
户端将第二客户端的属性修改为可执行之后,后将操作请求转发给第二客户端。所述系统
还包括:修改模块,用于将所述第二客户端的属性修改为不可执行;第四配置模块,用于将
修改所述第二客户端的属性的权限配置给所述第一客户端。
载的库函数结束操作请求。
改进等,均应包含在本申请的权利要求范围之内。