SQL审核 | 如何用 SQLE 自动审核 Java 应用

作者:孙健、张强
孙健,爱可生研发工程师,负责 SQLE 相关开发;张强:爱可生研发中心成员,后端研发工程师,目前负责 DMP 产品 Redis 相关业务开发。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
一. SQLE 介绍 SQLE 是一款由爱可生开源社区发起,面向数据库开发与管理人员,实现了 SQL 的「开发」-「测试」-「上线」等全流程覆盖,资源与权限精细化管理,兼顾简洁与高效,易维护、易扩展的的开源项目,旨在为用户提供一套的安全可靠、自主可控的 SQL 质量管控方案。
【SQL审核 | 如何用 SQLE 自动审核 Java 应用】在二月份发布的 1.2202.0 版本中:
  • 改造了用户系统,新增用户组和操作权限;
  • 增加对工单审核结果进行评分的功能;
  • 增加审核任务,支持 MySQL 的库表结构、Oracle 的 TopSQL以及 Java 应用的 SQL 抓取和审核;
  • 增加了 Db2 审核插件,支持 Db2 审核工单并上线;
  • 新增了 37 条 MySQL 审核规则,如检查 DDL 是否创建了冗余的索引;
  • 其他体验优化和 Bug 修复。
其他细节信息,可以访问:https://github.com/actiontech... 。
二.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/...;
  2. 创建 Java 应用的审核任务;
SQL审核 | 如何用 SQLE 自动审核 Java 应用
文章图片

  1. 启动应用程序;
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

  1. 查看 SQLE 审核任务详情界面,可以看到目前应用已经执行的 SQL ;
SQL审核 | 如何用 SQLE 自动审核 Java 应用
文章图片

  1. 查看审核报告,用户可以通过审核任务的审核报告了解到应用的 SQL 是否符合预设审核规则以便及时作出调整。
SQL审核 | 如何用 SQLE 自动审核 Java 应用
文章图片

  1. 在示例 Java 应用主页创建一个用户,然后便可以在审核任务对应的 SQLE 语句池内观察到所对应的 INSERT 语句。
SQL审核 | 如何用 SQLE 自动审核 Java 应用
文章图片

  1. 同时,用户可以从语句池内页面迅速地感知到应用内执行的 SQL 的语句分类和统计情况。
    SQL审核 | 如何用 SQLE 自动审核 Java 应用
    文章图片

综合以上的示例步骤,Java 应用零成本地接入了 SQLE。开发人员和 DBA 可以通过「审核报告」、「审核任务的 SQL 语句池」等功能完全掌握应用内的 SQL 审核结果、执行情况以及统计信息,完成了从「开发」直至「上线」这一过程中的 SQL 质量管控。
如果想进一步了解 SQLE 的更多功能与特性,请访问以下地址:
| 类型 | 地址 |
| --- | --- |
| 版本库 | https://github.com/actiontech... |
| 文档 | https://actiontech.github.io/... |
| 发布信息 | https://github.com/actiontech... |

    推荐阅读