[发明专利]一种基于代理模式的分布式数据库SQL审核拦截方法及装置有效

专利信息
申请号: 202110509145.4 申请日: 2021-05-11
公开(公告)号: CN113127520B 公开(公告)日: 2023-07-21
发明(设计)人: 肖永韧;程建敏;胡飞飞;徐真;朱明辉 申请(专利权)人: 中国电信股份有限公司江西分公司
主分类号: G06F16/2455 分类号: G06F16/2455;G06F16/2453;G06F16/27;G06F16/28;G06F16/2458;G06F16/248
代理公司: 北京权智天下知识产权代理事务所(普通合伙) 11638 代理人: 王新爱
地址: 330046 江*** 国省代码: 江西;36
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 代理 模式 分布式 数据库 sql 审核 拦截 方法 装置
【权利要求书】:

1.一种基于代理模式的分布式数据库SQL审核拦截装置,其特征在于:包括审核代理单元(D001)、语句审核判断单元(D002)、代理语句拦截单元(D003)、和代理语句透传单元(D004),具体是指用户使用数据库客户端执行语句,通过审核代理单元(D001)接受客户端发送的数据库操作请求并进行解析,通过语句审核判断单元(D002)对代理单元获的得用户和SQL语句后对其进行审核判断,语句审核判断单元随着审核结果的判断,若不符合审核规范则接入代理语句拦截单元(D003)对客户端请求进行拦截,反馈违反的审核规范内容;若符合审核规范则接入代理透传单元(D004),将客户端请求透传至目标分布式数据库,反馈客户端语句执行结果;

还包括代理节点配置管理单元(C009),代理节点配置管理单元(C009)包括审核端口管理、审核用户管理、目标分布式数据库地址和端口、业务相关属性;然后针对不同间的审核代理节点通过审核服务端进行审核规则配置管理,构建审核规则管理单元(C008),审核代理节点通过监听服务端审核规则配置信息变化,对节点内配置信息进行同步;审核规则涵盖语句模型规范、语句性能限制,审核服务端其包括:审核代理配置管理单元、审核规则管理管理、审核记录单元;审核记录单元为用户提供审核记录快速检索和统计分析功能;

还包括审核规则管理单元(C008),审核规则管理单元(C008)对应的规则对客户端操作的语句进行审核判断功能,构建审核判断单元(C003),审核判断单元为审核代理节点提供能力,并针对兼容MySQL协议的分布式数据库,审核判断单元(C003)依托数据库代理端单元接受数据库客户端待执行的语句;并通过网络协议解析单元(C002)对所述待执行的语句进行解析和审核;若所述待执行语句符合规范,则透传语句至目标数据库并反馈查询结果至数据库客户端;若所述待执行语句不符合规范,则拦截所述待执行语句并反馈语句违规内容至数据库客户端,审核代理节点通过代理连接池和审核连接池提高代理审核能力;

审核判断单元将审核结果通过审核结果单元发送单元(C004)进行采集上报,将审核判断单元审核过的审核语句结果通过消息队里单元(C005),基于消息中间件kafka接收存储,并基于流计算和多线程批量汇聚至集中全文检索数据库,构建统一存储及分析单元;存储及分析单元为审核结果单元服务,根据条件从存储及分析单元中查询出符合的结果集。

2.一种基于代理模式的分布式数据库SQL审核拦截装置的拦截方法,包括以下步骤:

S301、客户端连接单元是指客户端连接审核代理节点的一种方法,代理节点是基于Netty技术框架开发的一个高性能、异步事件驱动的NIO服务,用户能使用数据库常用客户端连接代理节点,并执行数据库相关操作;

S302、代理端接受数据库请求单元:该单元是构建了可扩缩容的代理节点集群服务,接收客户端发送的数据库操作请求;

S303、解析协议单元通过审核代理节点通基于零拷贝技术复制数据库传输协议并基于数据库网络协议规则对其进行解析;

S304、获取用户名和SQL语句单元:该单元是通过审核代理节点基于数据库网络通讯交互协议来判断协议类型,协议类型为用户登录协议则获取执行用户名称;协议类型为退出或关闭协议则获取关闭用户;协议类型为语句执行协议则获取执行SQL语句;协议类型为数据库切换协议则获取语句执行数据库库名;其他协议则忽略,不处理;

S305、判断用户是否属于黑名单用户单元:该单元是根据审核逻辑,判断用户是否属于黑名单用户;若是,执行S311和S313,若否,执行S306;

S306、判断用户是否属于白名单用户单元:该单元是判断用户是否属于白名单用户;若是,执行S310和S311,若否,执行S307;

S307、判断SQL语句是否匹配正则忽略语句单元:该单元是通过正则表达式判断SQL语句是否属于白名单语句,若是,执行S310和S311,若否,执行S308;

S308、判断是否AI审核单元:该单元是判断是否AI审核单元,审核服务端配置AI审核规则,如语句执行次数是否超过10000次则触发审核,若否,执行S316,若是,执行S309;

S309、语句类型解析单元:该单元是基于druid开发的语句分析单元分析SQL语句执行类型和目标数据库类型,SQL语句执行类型有DML语句、DQL语句、DDL语句,针对分布式数据库,进行特殊规则审核;DML和DQL需进行explain分析其执行计划,分布式数据库使用route2分析,获取语句执行计划的最大扫描行数、是否使用索引、执行情况的描述和说明信息;

S310、根据规则判断语句单元:该单元是对SQL进行AST抽象语法树分析,获取语句每个组件的含义,最终判断执行语句是否符合规范,若符合规范,执行S311,若不符合规范,执行S315;

S311、透传语句单元:该单元是反馈客户端语句执行结果,通过代理节点将语句透传至目标数据库进行执行,并反馈执行结果至客户端,随后执行S312;

S312、审核结果发送单元:该单元是在审核拦截判断结束后,审核节点会将审核结果进行封装,发送至Kafka消息中间件,审核结果包含审核语句、审核状态、执行语句、时间、数据库用户、客户端IP信息;

S313、审核结果存储及分析单元:该单元是通过批量消费Kafka消息中间审核结果数据,并以异步的形式将审核结果写入全文检索数据库作为最终存储,本单元是为后续的审核展示、审核查询提供数据基础,同时也是为了支持按照基于SQL空格分词为索引的形式进行快速检索;

S314、拒绝客户端连接单元:该单元提供主动端口客户端连接功能,是指若用户属于黑名单用户,则审核代理节点拒绝客户端连接;

S315、客户端报错单元:该单元是SQL语句不符合审核规范,按照数据库报错协议,将不符合规范的报错信息反馈至客户端。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电信股份有限公司江西分公司,未经中国电信股份有限公司江西分公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110509145.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top