零基础解系例题解析SQL自学,题目解析

一种 SQL 解析及匹配的方法和系统

     本發明涉及网络安全防护技术 尤其涉及一种 SQL 解析及匹配的方法和系统。背景技术 网络入侵检测系统和网络入侵防御系统 是防护网络安全嘚重要方式和手段, 通 常部署在关键网络内部入口或者网络边界入口处 实时监控和捕获进出网络的网络数据流 并进行智能综合分析, 发現实时网络入侵行为并进行实时的阻断或者报警等响应措施

     审计产品同样是网络安全防护中很重要的一种方式和手段, 审计产品也是部署在 关键网络内部或者网络边界入口处 旁路监听网络中实时的数据流并进行智能综合分析, 从而监控网络中系统、 设备等是否运行正常 保护网络中的重要资产。

     应用层协议深层解析技术 在当前主流网络入侵检测和网络入侵防御产品和审计 产品中被广泛采用, 可用来实現基于协议攻击特征和协议异常的入侵检测 也可用来实现 审计产品对应用层服务的审计和监视功能。

     数据库作为业务网最核心的资产 ┅直都是网络安全产品重点保护监视的对象。 数据库 SQL 语句的解析程度以及匹配精确度 对网络入侵检测和网络入侵防御以及审计产 品来说, 显得尤为重要

     目前很多网络入侵检测和网络入侵防御以及审计产品, 对 SQL 语句的解析程度都 较低 其主要表现在 :

     (1) 普遍地停留在从用户嘚网络环境中获取到 SQL 语句的程度, 并没有对其进行 深层次的语法解析 导致 SQL 语句与用户关注的定义规则进行匹配的成功率很低 ;

     目前很多網络入侵检测和网络入侵防御以及审计产品, 对 SQL 规则的匹配成功率 也较低 导致这样问题主要有两点 :

     (2) 匹配算法太过简单, 一般采用简单嘚字符串匹配方式对整个结果进行匹配

     综上所述, 有鉴于目前对 SQL 语句解析以及 SQL 规则匹配的程度都较低 有必要提 出 SQL 语句解析及规则匹配效果都较好的技术, 以解决上述技术问题

     发明内容 本发明所要解决的技术问题, 首先在于需要提供一种 SQL 语句解析及匹配的方法 和系统 鉯对 SQL 语句进行高效的解析及匹配。

     分析数据库环境 建立数据库表与数据库及数据库表字段的关联关系库 ;

     根据主流数据库厂商实现的 SQL 语呴, 建立所述词法扫描器和语法分析器识别的 扩展语法分析规则库 ;

     接收输入的 SQL 语句后 根据所述基础解系例题解析语法分析规则库及扩展语法分析规则库, 对所述输入的 SQL 语句进行语法分析 获得用户关注信息 ;

     建立运算符集合, 为所述运算符集合中的运算符建立匹配算法 ;

     采用选取的匹配算法 将所述用户关注信息与所述匹配规则集合进行匹配, 获得 匹配结果

     优选地, 所述关联关系库包含所述数据库表與所述数据库的关联关系 以及所述 数据库与所述数据库表字段的关联关系。

     根据所述词法分析规则及语法分析基础解系例题解析规则 建立所述基础解系例题解析语法分析规则库。

     优选地 根据所述主流数据库厂商实现的 SQL 语句, 建立所述语法分析器识别的 语法分析扩展规則 ;

     根据所述语法分析扩展规则 建立所述扩展语法分析规则库。

     优选地 所述运算符集合中的运算符, 适用的数据类型包括数值类型和芓符串类 型

     优选地, 所述用户关注信息 包括命令名、 表名、 字段名、 字段值以及关键字中的至 少一种。

     关联关系建立模块 用于分析數据库环境, 获得数据库表与数据库及数据库表字 段的关联关系库 ;

     匹配规则建立模块 与所述关联关系建立模块相连, 用于根据所述关聯关系库 建 立匹配规则集合 ;

     语法分析规则建立模块, 用于根据 SQL/99 标准定义的 SQL 语句 建立词法扫描器 和语法分析器识别的基础解系例题解析语法分析规则库 ; 根据主流数据库厂商实现的 SQL 语句, 建立所 述词法扫描器和语法分析器识别的扩展语法分析规则库 ;

     分析模块 与所述語法分析规则建立模块相连, 用于接收输入的 SQL 语句 根据所 述基础解系例题解析语法分析规则库及扩展语法分析规则库, 对所述输入的 SQL 语呴进行语法分析 获 得用户关注信息 ;

     运算符建立模块, 用于建立运算符集合 并为所述运算符集合中的运算符建立匹 配算法 ;

     匹配模块, 与所述匹配规则建立模块、 分析模块及运算符建立模块相连 用于根据 所述匹配规则集合以及所述运算符集合选取匹配算法, 并采用选取的匹配算法 将所述用 户关注信息与所述匹配规则集合进行匹配, 获得匹配结果

     优选地, 所述关联关系建立模块建立的所述关联关系庫 包括所述数据库表与所 述数据库的关联关系, 以及所述数据库与所述数据库表字段的关联关系优选地, 所述语法分析规则建立模块 建立所述词法扫描器识别的词法分析规则 ; 根据 SQL/99 标准定义的 SQL 语句, 建立所述语法分析器识别的语法分析基础解系例题解析规则 ; 根据所 述词法分析规则及语法分析基础解系例题解析规则 建立所述基础解系例题解析语法分析规则库 ; 根据所述主流数据 库厂商实现的 SQL 语句, 建立所述语法分析器识别的语法分析扩展规则 ; 根据所述语法分 析扩展规则 建立所述扩展语法分析规则库。

     优选地 所述运算符建立模塊建立的所述运算符集合, 其中的运算符适用的数据 类型包括数值类型和字符串类型

     本发明针对现有技术中网络入侵检测和网络入侵防禦、 数据库审计产品中规则定 义过于机械化等问题, 提高了对数据库 SQL 语句解析、 上报的准确性 具有 SQL 解析完整性 好、 准确率高以及智能化程度高的优点, 可广泛应用于网络入侵检测和网络入侵防御、 数据 库审计等网络安全产品中 附图说明

     图 1 为本发明 SQL 解析及匹配方法实施例嘚流程示意图。 图 2 为本发明中一关联关系示意图 图 3 为本发明中 SQL 语法分析流程示意图。 图 4 为本发明中灵活精确匹配流程示意图 图 5 为本发奣中灵活匹配过程示意图。 图 6 为本发明中精确匹配过程示意图 图 7 为本发明 SQL 解析及匹配系统实施例的组成示意图。具体实施方式

     以下将结匼附图及实施例来详细说明本发明的实施方式 借此对本发明如何应用 技术手段来解决技术问题, 并达成技术效果的实现过程能充分理解並据以实施

     目前大多数的网络入侵检测和网络入侵防御以及审计产品, 其对 SQL 规则的匹配 成功率较低的原因之一 就是匹配算法过于简单, 一般仅采用简单的字符串匹配方式对整 个结果进行匹配 并没有根据不同类型的结果采用不同的匹配算法。

     图 1 为本发明 SQL 解析及匹配方法實施例的流程示意图如图 1 所示, 该方法实 施例主要包括如下步骤 :

     步骤 S110 分析用户的数据库环境, 建立数据库表与数据库及数据库表字段的关 联关系库 该关联关系库中包含数据库表与数据库的关联关系, 以及数据库与数据库表字 段的关联关系 ;

     步骤 S112 根据所建立的该关聯关系库, 建立 SQL 匹配规则集合 ; 该 SQL 匹配规则 集合包含有若干 SQL 匹配规则 建立 SQL 匹配规则时, 在关联关系库中查找输入的对象 存 在的话引出所有与之关联的对象 ;



     步骤 S140, 接收到输入的一 SQL 语句后 根据该 SQL 基础解系例题解析语法分析规则库及 SQL 扩展语法分析规则库对接收到的该 SQL 语句進行语法分析, 获得用户关注信息 ; 该用户关 注信息包括命令名、 表名、 字段名、 字段值以及关键字等用户关注的各种字段值中的至少一 種;

     步骤 S150 根据本系统支持的运算符建立运算符集合, 并为各运算符建立对应的 匹配算法 该运算符集合中包含多种字符运算符和数值运算符 ;

     步骤 S154, 采用所选取的匹配算法 将该用户关注信息与 S112 步骤中建立的 SQL 匹配规则库进行匹配, 获得匹配结果

     需要说明的是, 上述步骤 S150 建立运算符集合的时机 并没有进行严格的限定, 且也可以在步骤 S124 之前 也可以在步骤 S132 之前。 本发明上述方法 降低了网络入侵检测和网絡入侵防御及审计产品对 SQL 规则配 置的复杂度, 减少了非智能的人为定义规则时会出现的误操作 深度的 SQL 语法分析可以 得到粒度很小的对用戶来说可能更加有用的数据, 灵活精确的匹配算法减少了衡量网络安 全产品重要指标的漏报率及误报率等等

     以下给出一个建立数据库表與数据库及数据库表字段关联关系的应用实例, 来详 细说明图 1 所示方法流程中步骤 S110

s_class 以及 s_scores ; (2) 每个列字段名的属性, 如 s_id 的属性有 : 主关键字 不能为空, 数据类型是数值型 通过以上分析, 得到了数据库表 student、 class 和 score 与数据库 school_bj 和 school_sh 之间的关联关系, 以及与数据库表字段之间的关联关系 所得的关联关系参见图 2 所示。

     以下给出一个建立匹配规则的应用实例 基于前述获得关联联系的应用实例, 详 细说明上述步骤 S112

     另外, 还需要手动输入要匹配的值比如, 手动选择数据库表、 手动选择=操作运 算符那么, 配置匹配规则时会根据从关联关系库中读取当湔数据库环境中的所有数据库 和数据库表 把读取到的数据库和数据库表关联起来, 然后再建立匹配规则在应用实例 中, 会建立如下的 4 條匹配规则 :

以及匹配模块 760 其中 :
     关联关系建立模块 710, 用于分析数据库环境 获得数据库表与数据库及数据库表 字段的关联关系库 ;
     匹配规则建立模块 720, 与关联关系建立模块 710 相连 用于根据该关联关系库, 建立匹配规则集合 ;
     分析模块 740 与该语法分析规则建立模块 730 相连, 鼡于接收输入的 SQL 语句 根 据该基础解系例题解析语法分析规则库及扩展语法分析规则库, 对该输入的 SQL 语句进行语法分析 获 得用户关注信息 ;
     运算符建立模块 750, 用于建立运算符集合 并为该运算符集合中的运算符建立匹 配算法 ;
     匹配模块 760, 与该匹配规则建立模块 720、 分析模块 740 忣运算符建立模块 750 相连 用于根据该匹配规则集合以及该运算符集合选取匹配算法, 并采用选取的匹配算法 将该用户关注信息与该匹配規则集合进行匹配, 获得匹配结果
     上述关联关系建立模块 710 建立的该关联关系库, 包括数据库表与数据库的关联 关系 以及数据库与数据庫表字段的关联关系。
     上述语法分析规则建立模块 730 建立该基础解系例题解析语法分析规则库时, 首先建立 flex 识别的词法分析规则 ; 然后根據 SQL/99 标准定义的 SQL 语句 建立 yacc 识别的语法分析基 础规则 ; 再根据该词法分析规则及语法分析基础解系例题解析规则, 建立该基础解系例题解析語法分析规则库
     上述语法分析规则建立模块 730, 建立该扩展语法分析规则库时 首先根据该主流 数据库厂商实现的 SQL 语句, 建立该 yacc 识别的语法分析扩展规则 ; 然后根据该语法分析 扩展规则 建立该扩展语法分析规则库。
     上述运算符建立模块 750 建立的运算符集合中的运算法 适用嘚数据类型包括数 值类型和字符串类型。
     本发明克服了现有技术的不足 提出的 SQL 解析及匹配的方法和系统, 用于入侵 检测、 入侵防御网络叺侵检测和网络入侵防御以及数据库审计产品 达到了对数据库 SQL 的智能配置、 深度解析和精确匹配, 具有良好的扩展性 能够处理不同厂商不同版本的数据 库应用。虽然本发明所揭露的实施方式如上 但所述的内容只是为了便于理解本发明而采 用的实施方式, 并非用以限定夲发明 任何本发明所属技术领域内的技术人员, 在不脱离本 发明所揭露的精神和范围的前提下 可以在实施的形式上及细节上作任何的修改与变化, 但本发明的专利保护范围 仍须以所附的权利要求书所界定的范围为准。

}

软件产业中扮演了极其重要的角銫在电信业、银行业等众 多行业中,驻留了大量的使用 PowerBuilder 开发的应用系统而这些系统大 部分受到 PowerBuilder 早期版本影响,以 CS 结构开发目前,随著 Internet 迅速而广泛的普及,各行各业中的需求也发生了许多本质的变化从而导致 以前老的 CS 系统不能够胜任日新月异的需求。如何将以前的 CS 应用無缝 并且迅速地迁移到 WEB 上便成了许多行业迫切需要解决的问题。在过去 的数年中各大软件厂商新推出了许多针对 WEB 应用的解决方案,但夶多 都需要重新完成整个系统的所有业务逻辑这样一来,不仅时间和运营成本 无法控制最关键的是新系统和老系统的一致性得不到保證。 我们需要一个可以将 PowerBuilder 开发的 Client/Server(客户端/服务器 简称 CS)应用迁移成 中非标准 SQL 的解析。 论文主要通非标准 SQL 的分析研究结合状态转换技术、容錯处理技 术和目标脚本生成时的模板技术的应用,设计由状态驱动的代码分析和代码 生成的体系结构在此基础解系例题解析上实现非标准 SQL 语句的分析、标准 SQL 语句 生成模块;通过采用状态转换表驱动分析流程的模型辅助方法,实现正确、 高效地将非标准 SQL 语句转换成标准 SQL 语句服务于迁移工程的应用模 块;通过使用状态转换表的处理原理实现分析过程中的容错处理。 通过课题的研究并结合实际应用已经在状態转换技术和容错处理技术 的实用化以及算法设计的实用化方面做了一些有益的研究和探索,同时也为 数据库信息系统迁移技术拓展了新嘚应用领域 关键词 SQL 解析;状态转换;信息系统迁移;容错处理;脚本生成 - I - 哈尔滨工业大学工程硕士学位论文 Abstract From the

}

我要回帖

更多关于 基础解系例题解析 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信