System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及金融科技,尤其涉及一种数据库操作语句检测方法和装置、电子设备及存储介质。
技术介绍
1、目前,随着数据库规模和复杂性的增加,对于数据库的安全性问题变得越来越重要。数据库通常有日志系统,相关技术可以通过日志进程将数据库中用户执行的结构化查询语言(structured query language,sql)语句写入日志文件中,以根据该日志文件实现对用户操作行为对应的sql语句的检测,从而保证数据库的安全性。例如,在金融科技的保险领域中,其对应的数据库在一天内会采集到大量用户操作行为对应的sql语句,通过对sql语句进行准确地检测,可以及时捕获和分析sql语句执行过程中出现的错误和异常,确保sql语句的执行符合相关的安全策略和合规性要求。
2、然而,相关技术的sql语句检测方法只能实现对数据定义语言(data def i n iti on language,ddl)或数据操作语言(data man i pu l at i on language,dml)等大类sql语句的检测,而不能对某类sql语句的细节检测,降低了数据库的安全性。因此,如何提高对数据库操作语句的检测准确性,成为了亟待解决的技术问题。
技术实现思路
1、本申请实施例的主要目的在于提出一种数据库操作语句检测方法和装置、电子设备及存储介质,旨在提高对数据库操作语句的检测准确性。
2、为实现上述目的,本申请实施例的第一方面提出了一种数据库语句检测方法,所述方法包括:
3、获取目标操
4、基于所述语句类型标签从预设规则表筛选出目标类型规则,并将所述目标操作语句、所述执行用户数据、所述目标类型规则和所述语句类型标签写入目标栈;
5、基于所述语句类型标签获取所述目标操作对象的对象名称、对象模式和对象类型,并将所述对象名称、所述对象模式和所述对象类型写入所述目标栈;
6、基于所述目标类型规则从注册执行函数中确定目标执行函数;
7、基于所述目标执行函数的预设执行状态和所述语句执行状态对所述目标操作语句进行时机检测,得到所述目标操作语句的时机检测状态,所述预设执行状态为调用所述目标执行函数期望得到的执行状态,所述时机检测状态用于表征对所述目标操作语句的检测为成功或失败;
8、基于所述时机检测状态和所述目标栈生成所述目标操作语句的语句检测报告,所述语句检测报告用于分析所述目标操作语句对所述目标数据库的数据执行过程的异常情况。
9、在一些实施例,在所述基于所述语句类型标签从预设规则表筛选出目标类型规则之前,所述方法还包括:
10、基于预设失效消息函数确定所述预设规则表的规则缓存状态,所述规则缓存状态包括无效状态,所述无效状态用于指示所述预设规则表的预设缓存中的规则发生变化;
11、若所述规则缓存状态是所述无效状态,获取当前配置的规则数据;
12、将所述规则数据加载到所述预设缓存中;
13、基于所述规则数据和所述规则数据的类型之间的映射关系构建所述预设规则表。
14、在一些实施例,所述基于所述语句类型标签获取所述目标操作对象的对象名称、对象模式和对象类型,包括:
15、若所述语句类型标签是预设类型标签,基于所述目标类型规则获取所述目标操作对象的所述对象名称、所述对象模式和所述对象类型;或者,
16、若所述语句类型标签不是所述预设类型标签,基于预设触发器获取所述目标操作对象的所述对象名称、所述对象模式和所述对象类型。
17、在一些实施例,所述基于所述目标类型规则获取所述目标操作对象的所述对象名称、所述对象模式和所述对象类型,包括:
18、基于所述目标操作对象的对象名称和所述目标类型规则进行对象规则匹配,得到对象规则匹配状态;所述对象规则匹配状态包括包含状态,所述包含状态表示所述目标类型规则中包含与所述目标操作对象的对象名称匹配的规则;
19、若所述对象规则匹配结果是所述包含状态,基于预设数据获取函数获取所述目标操作对象的所述对象名称、所述对象模式和所述对象类型。
20、在一些实施例,所述时机检测状态包括检测成功状态,所述检测成功状态表示所述预设执行状态与所述语句执行状态的类型相同;所述基于所述时机检测状态和所述目标栈生成所述目标操作语句的语句检测报告,包括:
21、若所述时机检测状态是所述检测成功状态,获取所述目标操作语句的事务数据、所述目标数据库的数据库名和语句执行数据;
22、基于所述事务数据、所述数据库名、所述语句执行数据和所述目标栈中的数据,生成所述语句检测报告。
23、在一些实施例,所述基于所述目标执行函数的预设执行状态和所述语句执行状态对所述目标操作语句进行时机检测,得到所述目标操作语句的时机检测状态,包括:
24、对所述目标栈进行遍历操作,得到栈数据;
25、对所述栈数据进行类型检测,得到所述栈数据的数据类型,所述数据类型包括待测类型,所述待测类型用于表征所述栈数据与所述目标操作语句的语句检测相关;
26、若所述数据类型是所述待测类型,基于所述预设执行状态和所述语句执行状态对所述目标操作语句进行时机检测,得到所述时机检测状态。
27、在一些实施例,所述时机检测状态还包括检测失败状态,所述检测失败状态表示所述预设执行状态与所述语句执行状态的类型不相同;所述基于所述时机检测状态和所述目标栈生成所述目标操作语句的语句检测报告,还包括:
28、若所述时机检测状态是所述检测失败状态,释放所述目标栈;
29、对所述目标栈进行栈检测,得到栈状态。
30、为实现上述目的,本申请实施例的第二方面提出了一种数据库操作语句检测装置,所述装置包括:
31、获取模块,获取目标操作语句的解析数据,所述解析数据包括执行用户数据、语句类型标签、目标操作对象和语句执行状态,所述目标操作语句为数据库操作语句,并用于对目标数据库的数据执行操作,所述语句执行状态用于表征所述目标操作语句为对所述目标数据库的数据所执行的操作为成功或者失败;
32、第一写入模块,用于基于所述语句类型标签从预设规则表筛选出目标类型规则,并将所述目标操作语句、所述执行用户数据、所述目标类型规则和所述语句类型标签写入目标栈;
33、第二写入模块,用于基于所述语句类型标签获取所述目标操作对象的对象名称、对象模式和对象类型,并将所述对象名称、所述对象模式和所述对象类型写入所述目标栈;
34、确定模块,用于确定基于所述目标类型规则从注册执行函数中确定目标执行函数;
本文档来自技高网...
【技术保护点】
1.一种数据库操作语句检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述基于所述语句类型标签从预设规则表筛选出目标类型规则之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述基于所述语句类型标签获取所述目标操作对象的对象名称、对象模式和对象类型,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于所述目标类型规则获取所述目标操作对象的所述对象名称、所述对象模式和所述对象类型,包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述时机检测状态包括检测成功状态,所述检测成功状态表示所述预设执行状态与所述语句执行状态的类型相同;所述基于所述时机检测状态和所述目标栈生成所述目标操作语句的语句检测报告,包括:
6.根据权利要求5所述的方法,其特征在于,所述基于所述目标执行函数的预设执行状态和所述语句执行状态对所述目标操作语句进行时机检测,得到所述目标操作语句的时机检测状态,包括:
7.根据权利要求6所述的方法,其特征在于,所述时机检测状态还包括检测失
8.一种数据库语句检测装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法。
...【技术特征摘要】
1.一种数据库操作语句检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述基于所述语句类型标签从预设规则表筛选出目标类型规则之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述基于所述语句类型标签获取所述目标操作对象的对象名称、对象模式和对象类型,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于所述目标类型规则获取所述目标操作对象的所述对象名称、所述对象模式和所述对象类型,包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述时机检测状态包括检测成功状态,所述检测成功状态表示所述预设执行状态与所述语句执行状态的类型相同;所述基于所述时机检测状态和所述目标栈生成所述目标操作语句的语句检测报告,包括:
6.根据权利要求5所述的方法,其特征在...
【专利技术属性】
技术研发人员:颜学彪,
申请(专利权)人:平安科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。