
1.2208.0
SQLE Release Notes
三、完整的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://demo.sqle.actionsky.com 超级管理员:admin,密码:admin。 |
企业版在线体验 | http://demo.sqle.actionsky.com:8889 用户:admin,密码:admin。 |
二、新版本主要功能总结
1. 智能扫描支持阿里云RDS MySQL慢日志扫描
2. 新增部分MySQL 审核规则
禁止使用TIMESTAMP字段 添加字段不带AFTER, FIRST IN的值必须少于 N 个 SELECT 不能有ORDER BY 建表必须含创建时间字段,且默认值为CURRENT_TIMESTAMP 建表必须含更新时间字段,且默认值为CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
3. 开放企业版MySQL规则到社区版本
随着SQLE产品迭代,目前产品形态逐渐丰富,最近几个版本也新增了许多企业版功能,因此后续会陆续开放部分企业版的功能。本次将所有企业版MySQL规则开放给社区,规则列表如下:
别名不要与表或列的名字相同
修改表的默认字符集不会改表各个字段的字符集
删除列为高危操作
删除主键为高危操作
删除外键为高危操作
不建议使用没有通配符的 LIKE 查询
IN (NULL)/NOT IN (NULL) 永远非真
尽量不要使用IN
引号中的字符串开头或结尾包含空 语句中使用了中文全角引号
不建议使用 ORDER BY RAND()
不建议对常量进行 GROUP BY
ORDER BY 语句对多个不同条件使用不同方向的排序无法使用索引
不建议ORDER BY 的条件为表达式
建议将过长的SQL分解成几个简单的SQL
不建议使用 HAVING 子句
删除全表时建议使用 TRUNCATE 替代 DELETE
不要 UPDATE 主键
表中包含有太多的列
建议列与表使用同一个字符集
整型定义建议采用 INT(10) 或 BIGINT(20)
VARCHAR 定义长度过长
应避免在 WHERE 条件中使用函数或其他运算符
不建议使用 SYSDATE() 函数
使用 SUM(COL) 时需注意 NPE 问题
主键中的列过多
未使用 ORDER BY 的 LIMIT 查询
请谨慎使用TRUNCATE操作
使用DELETE/DROP/TRUNCATE等操作时注意备份
发现常见 SQL 注入函数
请使用'<>'代替'!='
不推荐使用子查询
子查询不支持LIMIT
表的初始AUTO_INCREMENT值不为0
4. SQLE OceanBase for MySQL 新增了部分审核规则【企业版】
我们为 OceanBase for MySQL 新增了6条特定的审核规则,规则的选型来自于OceanBase 的官方文档:https://open.oceanbase.com/docs/observer-cn/V3.1.3/0000000000316888
库名长度不能超过指定字节
数据库对象名英文字母不推荐混用大小写
建表后不允许添加主键
不建议使用json类型
禁止创建名为 test 或以 test 开头的库
禁止使用或操作 oceanbase 库和 test 库
5. SQLE 新增了报表统计页面【企业版】

6. SQLE PostgreSQL 审核插件支持SQL分析【企业版】
在之前的MySQL 审核中,我们新增了SQL 下钻分析的功能, 新版本中PostgreSQL插件也支持了该功能。
SQLE会提供SQL分析报告界面,提供执行计划信息,如下图所示:


SQLE的SQL审核在设计之初是为了满足SQL上线的审核,随着产品发展,我们支持了多场景下的事前事后审核。本次版本进行了两个方面的更新,1. 在智能扫描的任务中,我们支持用户配置规则模版来达到同一个数据源在不同的场景下使用不同的规则力度;2. SQLE提供规则配置的方式实现区分不同审核场景,可以开启“停用上线审核模式”来给规则模版关闭上线审核模式。开启此规则后, SQLE会开启事后审核模式, 不再进行上线的校验,如已执行过的新增列的语句进行审核时会检测出列已存在, 在停用上线审核模式后此项检查将会被忽略。
产品体验
创建智能扫描任务场景下的规则模版,模版的规则可按需添加(也可从现有规则模版 clone),并且启用“停用上线审核模式”规则,如下图所示
创建或者修改扫描任务时,通过自定义审核规则模版来选择上述创建的适配事后审核的规则模版即可:

三、完整的release信息
Release Notes
特性
PostgreSQL 审核插件支持SQL分析【企业版】; OceanBase for MySQL 审核插件添加部分审核规则【企业版】; [#723] 新增报表统计页面【企业版】; [#755] 智能扫描支持指定特定的规则模版; [#716] MySQL 审核场景化改造兼容事后审核模式; [#734] 新增部分MySQL审核规则; [#784] 智能扫描支持阿里云rds mysql慢日志扫描; [#777] 开放企业版MySQL规则到社区版。
优化
[#698] 工单名称默认在页面上使用自动生成工单号; [#712] 创建的扫描任务的审核周期建议默认设置久一点,防止未设置的情况下每秒都审核; [#761][#757][#752] 报表统计功能细节优化【企业版】; [#789] 工单列表界面待操作人列展示优化; [#778] 智能扫描任务列表的任务名称上提供一个标识,可以快速知道点击这里查看任务详情。
[#717] 修复绑定了流程模板的用户无法被删除问题,即使流程模版已经删除; [#731] 将SQLE所有用双引号包裹字符串的得放改为单引号,因为某些情况下双引号包裹的内容可能会被当作标识符而非字符串; [#736] v1/instance_tips [get] 指定实例类型时会报错; [#708] 修复MySQL审核时,某些特定语句触发字段不存在的误判的问题; [#773] 修复开启全局配置中的“在 DML 语句中预计影响行数超过指定值则不回滚”审核SQL导致服务崩溃的问题; [#758] 修复审核规则“必须使用指定数据库字符集”导致panic的问题; [#722] SQLE后端库不再记录邮箱配置的明文密码; [#806] 修复创建扫描任务的时候不指定规则模版,提交报错的问题; [#802] 修复admin的dashboard展示需要上线个数为1,点开tab,展示暂无数据的问题; [#809] 修复使用select sleep(1)语句进行审核导致sqle崩溃的问题; [#799] 审核任务已经改成扫描任务,修改对应的权限名称。
更多关于 SQLE 的信息和交流,请加入官方QQ交流群:637150065...