一、SQLE 项目介绍
爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。
SQL审核工具 SQLE 1.2206.0-pre1 于今天发布。以下对新版本的 Release Notes 进行详细解读。
注:本次升级为预览版本,仅可用新功能试用,不保证平滑升级
文章主要分为以下三部分内容:
一、SQLE 项目介绍
二、新版本主要功能介绍
三、完整的release信息
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://124.70.158.246:8888/ 超级管理员:admin,密码:admin。 |
企业版在线体验 | http://124.70.158.246:8889/ 用户:admin,密码:admin。 |
二、新版本主要功能介绍
1. 支持TIDB审核插件【企业版】
SQLE通过插件的形式支持TiDB的审核,我们调研了MySQL与TiDB的部分差异,在TiDB插件内引入了大部分MySQL的审核规则,并去掉TiDB不兼容的场景,使得SQLE能够完全兼容TiDB。后面我们会通过专门的文章来介绍TiDB的插件。以下是TiDB规则的截图:
2. 支持TiDB专属审核规则【企业版】
group by语句必须包含select列表中的所有非聚合列
检查 SQL需要遵守 ‘MySQL的ONLY_FULL_GROUP_BY’ 模式;例如:select a, b, sum(c) from t group by a 中 SELECT 列表中的非聚合列 “b” 在 GROUP BY 语句中不显示。下面是SQLE规则截图:
group_concat() 语法必须使用 order by
例如:SELECT GROUP_CONCAT(a) FROM t 中 GROUP_CONCAT 函数内没有明确指定排序方式。下面是SQLE规则截图:
limit 分页查询必须使用排序
例如:select a from t limit 5 中未指定排序方式。下面是SQLE规则截图:
未使用自增主键/自动随机主键写入
例如:insert into t (id, name) values (1, “xx”); --ID是自增主键。此时使用显示 ID 写入,可能导致自动分配的主键值冲突,建议使用自增 ID 自动写入。下面是SQLE规则截图:
高并发写入表不建议使用自增主键
例如:create table t ( id int primary key auto_increment ); TiDB 中使用 auto_increment 自增属性时,容易导致写入热点,建议使用 bigint 类型和 AUTO_RANDOM 替代。下面是SQLE规则截图:
三、完整的release信息
Release Notes
特性
-
[#565] 支持 TiDB 类型数据库审核【企业版】
-
[#573] 新增4条TiDB专属规则【企业版】
-
禁用 non-full group by 语法
-
group_concat() 语法必须使用order by
-
limit 分页查询必须使用排序
-
未使用自增主键/自动随机主键写入
-
高并发写入表不建议使用自增主键
-
缺陷修复
- [#563] 修复SQLE scanner 解析带有空otherwise标签的 mybatis XML时异常崩溃
往期版本:
推荐阅读: