如何用SQLE自动审核Java应用

作者:孙健、张强
孙健,爱可生研发工程师,负责 sqle 相关开发;张强:爱可生研发中心成员,后端研发工程师,目前负责 dmp 产品 redis 相关业务开发。
一. sqle 介绍
sqle 是一款由爱可生开源社区发起,面向数据库开发与管理人员,实现了 sql 的「开发」-「测试」-「上线」等全流程覆盖,资源与权限精细化管理,兼顾简洁与高效,易维护、易扩展的的开源项目,旨在为用户提供一套的安全可靠、自主可控的 sql 质量管控方案。
在二月份发布的 1.2202.0 版本中:
改造了用户系统,新增用户组和操作权限;
增加对工单审核结果进行评分的功能;
增加审核任务,支持 mysql 的库表结构、oracle 的 topsql以及 java 应用的 sql 抓取和审核;
增加了 db2 审核插件,支持 db2 审核工单并上线;
新增了 37 条 mysql 审核规则,如检查 ddl 是否创建了冗余的索引;
其他体验优化和 bug 修复。
二. java 应用审核介绍
(友情提示:此为企业版功能)考虑到很多用户在实际生产中已经部署了大量的、以 java 为基础的应用和服务,并且某些已经涉及到了极其重要、不可中断的核心业务。从 1.2202.0 版本开始,sqle 开始支持 java 应用的 sql 审核。并且在完成核心功能的基础上,支持 java 应用零成本接入 。
sqle 的 java 审核特性如下:
支持无侵入式的业务集成,用户可以直接以环境变量的方式运行来启动 java 应用,直接接入 sqle 而无需修改 java 业务代码,减少了用户接入成本;
支持应用 sql 的自动采集和统计,用户可以在 sqle 上通过语句池页面统览应用内的 sql 的分类与统计,迅速掌握应用内 sql 的情况;
支持手动或自动审核 sql ,用户可以在审核报告中知晓应用的 sql 是否符合预设的审核规则,无论是开发人员还是 dba 都能实时了解正在运行的业务 sql 执行状况。
三. 效果展示
1. 事先部署好环境、需要接入的 java 应用以及对应的数据库,并添加为数据源。为了演示,此处 java 项目为 https://gitee.com/surveyking/surveyking ;
2. 创建 java 应用的审核任务;
3. 启动应用程序;
sqle_collect_enable=true \sqle_host=xx.xx.xx.xx:10000 \
sqle_task_name=surveryking_test \
sqle_task_token=eyjhbgcioijiuzi1niisinr5cci6ikpxvcj9.eyjhcg4ioijqd19hchailcjlehaioje2nzcymjyxnzcsim5hbwuioijhzg1pbij9.3d0pa1hivnfewjoksfbwct8d1pkoyv6svienj4gfqgi \
java -jar surveyking-v0.3.0-beta.4.jar \
--server.port=1991 \
--spring.datasource.url=jdbc:mysql://xx.xx.xx.xx:3306/surveyking \
--spring.datasource.username=root \
--spring.datasource.password=xxxxxx \
& >>/opt/surveyking/std.log
4. 查看 sqle 审核任务详情界面,可以看到目前应用已经执行的 sql ;
5. 查看审核报告,用户可以通过审核任务的审核报告了解到应用的 sql 是否符合预设审核规则以便及时作出调整。
6. 在示例 java 应用主页创建一个用户,然后便可以在审核任务对应的 sqle 语句池内观察到所对应的 insert 语句。
7. 同时,用户可以从语句池内页面迅速地感知到应用内执行的 sql 的语句分类和统计情况。
综合以上的示例步骤,java 应用零成本地接入了 sqle。开发人员和 dba 可以通过「审核报告」、「审核任务的 sql 语句池」等功能完全掌握应用内的 sql 审核结果、执行情况以及统计信息,完成了从「开发」直至「上线」这一过程中的 sql 质量管控。
如果想进一步了解 sqle 的更多功能与特性,请访问以下地址:
类型 地址
版本库 https://github.com/actiontech/sqle
文档 https://actiontech.github.io/sqle-docs-cn/
发布信息 https://github.com/actiontech/sqle/releases


家庭音响+互联网,玩起新创意
迪拜为了推动环保事业 电动车充电两年不收费
专用SOC安全控制架构的研究与设计
土壤水分温度电导率传感器的特点及参数
特斯拉四轮降价,在华销量却大跌,原因为何?
如何用SQLE自动审核Java应用
适用于TI mmWave sensor单芯片SOC平台的连续波点频模式设置方法
自动检测LED故障的方法介绍
GaN Charger推荐方案- HGN093N12S/SL高频应用MOSFET
VR技术何时迎来黄金时代
抑制PCB干扰,怎么在源头上把EMI减到最小
联想Z6正式发布 首次搭载骁龙730处理器
BittWare和Achronix合作推出采用7纳米的Speedster7t FPGA
基于微功率脉冲雷达的运动传感器的电路设计
2Q19英特尔CPU缺货问题加剧 AMD公司股价借势上涨
石英晶振的原理图
人工智能、云计算对未来地面战的影响
区块链资产平台是什么?未来将如何发展?
AIGC到底需要多大的算力?
美国限制14类技术出口清单,你想买的基本都买不到了