数据库操作方法、装置、设备和计算机可读存储介质制造方法及图纸

技术编号:24455951 阅读:21 留言:0更新日期:2020-06-10 15:33
本发明专利技术公开了一种数据库操作方法,包括以下步骤:在接收到数据库操作请求时,获取所述数据库操作请求对应的操作指令;通过预设SQL语法解析器解析所述操作指令,获得所述操作指令的语法结构,和所述操作指令中包含的关键字符信息;根据所述语法结构和所述关键字符信息,构建所述操作指令对应的SQL语法树;根据所述SQL语法树获取所述关键字符信息的验证规则,在所述关键字符信息符合所述验证规则时,执行所述操作指令。本发明专利技术还公开了一种数据库操作装置、设备和计算机可读存储介质。本发明专利技术具有降低数据库操作的风险性的有益效果。

Database operation method, device, equipment and computer readable storage medium

【技术实现步骤摘要】
数据库操作方法、装置、设备和计算机可读存储介质
本专利技术涉及数据库操作领域,尤其涉及数据库操作方法、装置、设备和计算机可读存储介质。
技术介绍
SQL(StructuredQueryLanguage,结构化查询语言)是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL是各种数据库最直接也是最通用的操作数据的语言,尽管SQL本身的能力非常强大,但是利用SQL语句进行数据库操作时,也无可避免地会给数据库带来很多安全问题,为了减少这些安全问题,当前通常会设置SQL预警,例如,在每次数据库中有新增的表时候,数据库运维人员都设置新增表的访问权限,在数据库操作时根据SQL语句信息,判断是否具有数据库操作权限,若不具有数据库操作权限,则进行SQL预警,这样的SQL预警方式,预警的粒度较粗且每次都需要额外的维护权限。
技术实现思路
本专利技术的主要目的在于提供一种数据库操作方法、装置、设备和计算机可读存储介质,旨在解决当前不可以对数据库操作指令进行有效地验证,导致数据库操作的风险性较高的技术问题。为实现上述目的,本专利技术提供数据库操作方法,所述数据库操作方法包括以下步骤:在接收到数据库操作请求时,获取所述数据库操作请求对应的操作指令;通过预设SQL语法解析器解析所述操作指令,获得所述操作指令的语法结构,和所述操作指令中包含的关键字符信息;根据所述语法结构和所述关键字符信息,构建所述操作指令对应的SQL语法树;<br>根据所述SQL语法树获取所述关键字符信息的验证规则,在所述关键字符信息符合所述验证规则时,执行所述操作指令。在一实施例中,所述通过预设SQL语法解析器解析所述操作指令,获得所述操作指令的语法结构,和所述操作指令中包含的关键字符信息的步骤之后,包括:判断所述操作指令的语法结构是否为SQL语法结构,和/或所述关键字符信息中是否包含SQL关键字;若所述操作指令的语法结构是SQL语法结构,或所述关键字符信息中包含SQL关键字,则执行所述根据所述语法结构和所述关键字符信息,构建所述操作指令对应的SQL语法树的步骤。在一实施例中,所述判断所述操作指令的语法结构是否为SQL语法结构,和/或所述关键字符信息中是否包含SQL关键字的步骤之后,包括:若所述操作指令的语法结构不是SQL语法结构,且所述关键字符信息中不包含SQL关键字,则判断所述关键字符信息中是否包含敏感信息;若所述关键字符信息中包含敏感信息,则屏蔽所述操作指令;若所述关键字符信息中不包含敏感信息,则调用预设数据接口对所述操作指令进行转化,以使所述操作指令的语法结构是SQL语法结构,或所述关键字符信息中包含SQL关键字。在一实施例中,所述根据所述语法结构和所述关键字符信息,构建所述操作指令对应的SQL语法树的步骤,包括:对所述语法结构进行语法分析,得到所述语法结构对应的层级关系,并按所述层级关系生成基础语法树;对所述关键字符信息进行词法分析,得到所述关键字符信息中的关键字段和关键值,将所述关键字段和所述关键值进行关联作为键值对;将所述键值对添加到所述基础语法树的叶子节点上,生成所述操作指令对应的SQL语法树。在一实施例中,所述根据所述SQL语法树获取所述关键字符信息的验证规则,在所述关键字符信息符合所述验证规则时,执行所述操作指令的步骤,包括:查询预设规则映射表,获取所述SQL语法树中键值对对应的验证规则,判断所述键值对中的关键值是否符合所述验证规则;若所述键值对中的关键值不符合所述验证规则,则输出SQL预警提示;若所述键值对中的关键值符合所述验证规则,则执行所述操作指令。在一实施例中,所述在接收到数据库操作请求时,获取所述数据库操作请求对应的操作指令的步骤,包括:在接收到数据库操作请求时,获取所述操作请求对应的设备标识和/或账号标识,并判断所述设备标识和/或所述账号标识是否在预设黑名单中,其中,所述预设黑名单包括预设设备黑名单和预设账号黑名单;若所述设备标识和/或所述账号标识在预设黑名单中,则屏蔽所述数据库操作请求;若所述设备标识和所述账号标识没有在预设黑名单中,则获取所述数据库操作请求对应的操作指令。在一实施例中,所述根据所述SQL语法树获取所述关键字符信息的验证规则,在所述关键字符信息符合所述验证规则时,执行所述操作指令的步骤之后,包括:在所述操作指令执行完成时,获取所述数据库的更新信息,并判断所述更新信息中是否包含敏感信息;若所述更新信息中包含敏感信息,则撤销所述操作指令,以将所述数据库恢复至初始状态。此外,为实现上述目的,本专利技术还提供一种数据库操作装置,所述数据库操作装置包括:指令获取模块,用于在接收到数据库操作请求时,获取所述数据库操作请求对应的操作指令;信息获取模块,用于通过预设SQL语法解析器解析所述操作指令,获得所述操作指令的语法结构,和所述操作指令中包含的关键字符信息;树形构造模块,用于根据所述语法结构和所述关键字符信息,构建所述操作指令对应的SQL语法树;指令执行模块,用于根据所述SQL语法树获取所述关键字符信息的验证规则,在所述关键字符信息符合所述验证规则时,执行所述操作指令。此外,为实现上述目的,本专利技术还提供一种数据库操作设备;所述数据库操作设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中:所述计算机程序被所述处理器执行时实现如上所述的数据库操作方法的步骤。此外,为实现上述目的,本专利技术还提供计算机存储介质;所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的数据库操作方法的步骤。本专利技术实施例提出的一种数据库操作方法、装置、设备和计算机可读存储介质,通过在接收到数据库操作请求时,获取所述数据库操作请求对应的操作指令;通过预设SQL语法解析器解析所述操作指令,获得所述操作指令的语法结构,和所述操作指令中包含的关键字符信息;根据所述语法结构和所述关键字符信息,构建所述操作指令对应的SQL语法树;根据所述SQL语法树获取所述关键字符信息的验证规则,在所述关键字符信息符合所述验证规则时,执行所述操作指令。本专利技术还公开了一种数据库操作装置、设备和计算机可读存储介质。本专利技术实施例中利用解析器解析操作指令,得到操作指令对应的SQL语法树,根据SQL语法树结构确定数据库操作指令的验证规则,并按照验证规则对操作指令进行验证,在操作指令中的关键字符信息符合验证规则时,执行操作指令,本专利技术实施例中通过对操作指令进行验证,有效地降低操作数据库的风险性,保证了数据库中数据信息的安全。附图说明图1是本专利技术实施例方案涉及的硬件运行环境的装置结构示意图;图2为本专利技术数据库操作方法第一实施例的流程示意图;图3为本专利技术数据库操作方法第一实施例中数据库操本文档来自技高网...

【技术保护点】
1.一种数据库操作方法,其特征在于,所述数据库操作方法包括以下步骤:/n在接收到数据库操作请求时,获取所述数据库操作请求对应的操作指令;/n通过预设SQL语法解析器解析所述操作指令,获得所述操作指令的语法结构,和所述操作指令中包含的关键字符信息;/n根据所述语法结构和所述关键字符信息,构建所述操作指令对应的SQL语法树;/n根据所述SQL语法树获取所述关键字符信息的验证规则,在所述关键字符信息符合所述验证规则时,执行所述操作指令。/n

【技术特征摘要】
1.一种数据库操作方法,其特征在于,所述数据库操作方法包括以下步骤:
在接收到数据库操作请求时,获取所述数据库操作请求对应的操作指令;
通过预设SQL语法解析器解析所述操作指令,获得所述操作指令的语法结构,和所述操作指令中包含的关键字符信息;
根据所述语法结构和所述关键字符信息,构建所述操作指令对应的SQL语法树;
根据所述SQL语法树获取所述关键字符信息的验证规则,在所述关键字符信息符合所述验证规则时,执行所述操作指令。


2.如权利要求1所述的数据库操作方法,其特征在于,所述通过预设SQL语法解析器解析所述操作指令,获得所述操作指令的语法结构,和所述操作指令中包含的关键字符信息的步骤之后,包括:
判断所述操作指令的语法结构是否为SQL语法结构,和/或所述关键字符信息中是否包含SQL关键字;
若所述操作指令的语法结构是SQL语法结构,或所述关键字符信息中包含SQL关键字,则执行所述根据所述语法结构和所述关键字符信息,构建所述操作指令对应的SQL语法树的步骤。


3.如权利要求2所述的数据库操作方法,其特征在于,所述判断所述操作指令的语法结构是否为SQL语法结构,和/或所述关键字符信息中是否包含SQL关键字的步骤之后,包括:
若所述操作指令的语法结构不是SQL语法结构,且所述关键字符信息中不包含SQL关键字,则判断所述关键字符信息中是否包含敏感信息;
若所述关键字符信息中包含敏感信息,则屏蔽所述操作指令;
若所述关键字符信息中不包含敏感信息,则调用预设数据接口对所述操作指令进行转化,以使所述操作指令的语法结构是SQL语法结构,或所述关键字符信息中包含SQL关键字。


4.如权利要求1所述的数据库操作方法,其特征在于,所述根据所述语法结构和所述关键字符信息,构建所述操作指令对应的SQL语法树的步骤,包括:
对所述语法结构进行语法分析,得到所述语法结构对应的层级关系,并按所述层级关系生成基础语法树;
对所述关键字符信息进行词法分析,得到所述关键字符信息中的关键字段和关键值,将所述关键字段和所述关键值进行关联作为键值对;
将所述键值对添加到所述基础语法树的叶子节点上,生成所述操作指令对应的SQL语法树。


5.如权利要求1所述的数据库操作方法,其特征在于,所述根据所述SQL语法树获取所述关键字符信息的验证规则,在所述关键字符信息符合所述验证规则时,执行所述操作指令的步骤,包括:...

【专利技术属性】
技术研发人员:刘顺
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1