1.2207.0
SQLE Release Notes
SQL审核工具 SQLE 1.2207.0 于今天发布。以下对新版本的 Release Notes 进行详细解读。
文章主要分为以下四部分内容:
一、SQLE 项目介绍
二、新版本主要功能总结
三、完整的release信息
四、鸣谢
一、SQLE 项目介绍
爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。
SQLE 获取
类型 | 地址 |
---|---|
版本库 | https://github.com/actiontech/sqle |
文档 | https://actiontech.github.io/sqle-docs-cn/ |
发布信息 | https://github.com/actiontech/sqle/releases |
数据审核插件开发文档 | https://actiontech.github.io/sqle-docs-cn/3.modules/3.7_auditplugin/auditplugin_development.html |
社区版在线体验 | http://demo.sqle.actionsky.com 超级管理员:admin,密码:admin。 |
企业版在线体验 | http://demo.sqle.actionsky.com:8889用户:admin,密码:admin。 |
二、新版本主要功能总结
1. dashboard 页面改造,新增更多视角下的工单概览信息
SQLE dashboard 界面结构进行了优化,通过不同的视角(DBA,开发)将当前最新的工单信息尽量多的展示在dashboard上,方便进行查看和处理。
2. 提供在增量场景的智能扫描(慢日志,TiDB审计日志)的增量审核
对于慢日志,tidb 审计日志扫描类的审核,由于scanner使用的是增量扫描日志文件来实时提交SQL到SQLE,那么存在一个问题,即当某个存在问题的SQL被修复后SQLE是无法感知到的,依然会对该SQL进行审核。因此对于智能扫描类的场景提供增量审核的模式,可以忽略到一段时间内不再出现的SQL,仅对某段时间以来的SQL进行审核。SQLE 在创建智能扫描(审核任务)时提供可选配置来定义仅审核最近某段时间内出现的SQL,如下图所示:
3. 支持OceanBase MySQL模式审核插件【企业版】
SQLE通过插件的形式支持OceanBase MySQL模式的审核,我们调研了MySQL与OceanBase的部分差异,在OceanBase-MySQL插件内引入了大部分MySQL的审核规则,并去掉OceanBase MySQL模式不兼容的场景,使得SQLE审核能完全兼容OceanBase MySQL模式,目前OceanBase的规则已能使用MySQL 大部分规则,并增加了2条OB特有规则。其中特有规则来源是OceanBase 文档:https://open.oceanbase.com/docs/observer-cn/V3.1.3/0000000000316888。后续还会陆续集成OceanBase 官方推荐的规范,以下是最增的规则:
- 表名英文字母不推荐混用大小写
- 不推荐使用 count(列名) 来替代 count(*)
以下是OceanBase MySQL审核插件在SQLE安装后的效果图:
4. 新增IDE(Jetbrains系列)审核插件
SQLE的该插件满足开发人员在开发阶段进行实时自助式的静态SQL审核,实现开发阶段审核上线等各个SQL开发阶段的SQL开发规范。安装可参考之前发的公众号文章或者通过SQLE文档:https://actiontech.github.io/sqle-docs-cn/3.modules/4.1_auxiliary_tool/jetbrains_plugin.html
最终使用结果如下图所示:
插件会以弹窗的形式将审核结果进行展示,如下图所示:
三、完整的release信息
Release Notes
特性
- 支持审核TiDB的审计日志【企业版】;
- 支持 OceanBase MySQL 模式的审核【企业版】;
- [#686] 新增IDEA(Jetbrains系列)审核插件;
- [#680][#693] dashboard 页面改造,新增更多视角下的工单概览信息;
- [#687] 提供在增量场景的智能扫描(原:审核任务,慢日志,TiDB审计日志)的增量审核;
优化
- [#626] 优化审核规则模版界面的表格模版与其他表格一致;
- [#625] 数据源界面增加数据库类型字段以及筛选条件方便进行分类查看;
- [#682] 调整“审核任务”命名,改成“智能扫描”,使更符合当前功能定义;
- [#694] MySQL插件在界面上的展示由"mysql"调整为"MySQL";
缺陷修复
- [#666] 修复MySQL的lower_case_table_names配置为2时,部分审核进行库表检查不符合预期的问题;
- [#667] 修复当MySQL审核语句包含系统表时,SQLE审核会提示表不存在的问题;
- [#649] [actiontech/sqle-ee/issues/300] [actiontech/sqle-ee/issues/303]修复部分企业版license的问题;
- [#653] 修复老版本数据库插件在新版本SQLE上不兼容的问题;
- [#657] 修复审核特定带别名的SQL会导致进行索引建议时服务奔溃的问题;
- [#690] 修复当where的字段的判断条件在括号内时,索引优化与结果不符的问题;
- [#691] 修复当where的字段的判断条件在括号内时,规则“禁止使用没有where条件的sql语句或者使用where 1=1等变相没有条件的sql“判断错误的问题;
- [#695] 修复配置MySQL的规则模板时编辑规则页面数据库类型错误的问题;
- [#696] 修复智能扫描功能中库表扫描任务存在表命名带“-”的数据库时,后端报错,库表审核任务内无数据的问题;
- [#699] 修复特定的规则触发后显示两次审核提示的问题;
- [#701] 修复SQLE scanner 较高概率出现扫描上传SQL超时的问题;
- [#704] 修复MyBatis 审核特定语法trim的suffix属性未支持导致的解析失败的问题。
四、鸣谢
- 感谢 @Sharkzeng 对SQLE的使用体验并提交一批有效缺陷和优化。