SQL 审核工具 SQLE 2.2306.0 于今天发布。以下对新版本的 Release Notes 进行详细解读。
文章主要分为以下三部分内容:
一、SQLE 项目介绍
二、新版本主要功能介绍
三、完整的 Release 信息
一、SQLE 项目介绍
爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。目前支持各种数据库规则 700+。
SQLE 获取
| 类型 |
地址 |
| 版本库 |
https://github.com/actiontech/sqle |
| 文档 |
https://actiontech.github.io/sqle-docs/ |
| 发布信息 |
https://github.com/actiontech/sqle/releases |
| 数据审核插件开发文档 |
https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtodev |
| 在线体验-社区版 |
http://demo.sqle.actionsky.com
超级管理员:admin 密码:admin |
| 在线体验-企业版 |
http://demo.sqle.actionsky.com:8889
用户:admin 密码:admin |
二、新版本主要功能介绍
【社区版】
1. 新增 3 条 MySQL 规则
根据业务需求,本期新增 3 条 MySQL 规则,分别为:
1. 建表时,自增字段只能设置一个。
2. 不建议对同一张表连接多次。
3. 为至少一个索引添加非空约束。
【社区版】
1. 新增 3 条 MySQL 审核规则
根据业务需求,本期新增 3 条 MySQL 规则,分别为:
1. 建表时,自增字段只能设置一个;
2. 不建议对同一张表连接多次;
3. 为至少一个索引添加非空约束。
2. 新增百度云 RDS MySQL 慢日志智能扫描
本期新增百度云 RDS MySQL 慢日志智能扫描任务,配置后,SQLE 可以对百度云 RDS 实例上的慢 SQL 进行监管。通过 SQLE 平台给出的审核结果,用户可以有针对性地优化数据库性能。以下是简单的功能试用:
1. 前置操作:用户创建的百度云 RDS 实例需为双机高可用版本,并对实例开通慢日志。
![]()
2. 在扫描任务列表页面,用户点击创建扫描任务,选择 MySQL 数据库类型,选择任务类型为百度云 RDS MySQL 慢日志,填写相关信息后,点击提交,完成扫描任务创建。
![]()
-
实例 ID:百度云 RDS 实例的 ID;
-
Access Key:为账号安全认证中的 Access Key,用于登录百度云 RDS,需要与 Secret Key 一同使用;
-
Access Secret Key:账号安全认证中 Access Key 对应的 Secret Key;
-
启动任务时拉取慢日志时间范围:扫描任务读取慢日志的时间范围,单位为小时,最大范围为 7 天;
-
审核过去时间段内抓取的 SQL: 审核该时间段内抓取到的慢 SQL,单位分钟;
-
RDS Open API 地址:RDS 的地址前缀,用以调用 RDS 服务,需根据实例所在区域进行填写。如当前实例在华东 - 上海范围,则应填写 rds.fsh.baidubce.com
![]()
3. 进入扫描任务详情,可查看扫描任务抓取到的慢 SQL。
![]()
4. 点击立即审核,可查看对慢 SQL 的审核结果。
![]()
3. 在线输入 SQL 时,支持格式化 SQL
创建工单场景下,在输入 SQL 时,通常会出现一长条的 SQL 语句,难以阅读和理解。为此,本期新增了对在线输入 SQL 进行格式化的功能,以提高 SQL 的可读性。以下是简单的功能体验:
1. 进入创建工单页面,并输入一条 SQL。
![]()
2. 点击 SQL 美化,平台将对输入的 SQL 进行格式化。
![]()
【企业版】
1. 支持对 TDSQL InnoDB 模式数据源的工单审核及上线
用户现在可以将 TDSQL InnoDB 模式数据源纳入平台的 SQL 审核管理中。
目前,平台已经支持对该数据源进行工单审核,并支持 122 条审核规则。以下是简要的使用说明:
1. 纳管 TDSQL InnoDB 模式数据源之前,用户需在 SQLE 环境中配置最新的 TDSQL 插件,插件配置方法可参考数据库审核插件使用(https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse)。
2. 用户可以在 项目 -> 数据源管理 页面添加 TDSQL 数据源。在新增数据源时,需要选择数据库类型为 TDSQL For InnoDB,并填写相关信息,然后点击提交即可完成添加。
![]()
添加数据源
3. 用户可以进入工单列表页面,点击 " 创建工单 " 按钮,选择添加 TDSQL for InnoDB 数据源,输入 SQL 并提交审核。最后,点击 " 创建 " 按钮即可完成对 TDSQL 数据源的工单创建。
![]()
2. 支持对 Mycat 类型的数据源的工单审核及上线
用户现在可以将 Mycat 类型数据源纳入平台的 SQL 审核管理中。
目前,平台已经支持对该数据源进行工单审核,并支持 129 条审核规则。以下是简要的使用说明:
1. 纳管 Mycat 数据源之前,用户需在 SQLE 环境中配置最新的 Mycat 插件,插件配置方法可参考数据库审核插件使用(https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse)。
2. 用户可以在 项目 -> 数据源管理 页面添加 Mycat 数据源。在新增数据源时,需要选择数据库类型为 Mycat,并填写相关信息,然后点击提交即可完成添加。
![]()
3. 用户可以进入工单列表页面,点击 " 创建工单 "按钮,选择添加的 Mycat 数据源,输入 SQL 并提交审核。最后,点击" 创建 " 按钮即可完成对 Mycat 数据源的工单创建。
![]()
3. 支持自定义操作记录过期时间
SQLE 支持记录、展示和导出用户的操作记录,并且定期清理历史操作记录,默认的历史记录过期时间为 90 天。
为了满足用户的自定义需求,SQLE 新增了配置入口,用户现在可以根据实际需求设置操作记录的过期时间。
如果需要回收过期 30 天以上的历史操作记录,可以按照以下步骤进行操作:
1. 平台管理员进入系统设置,查看全局配置,默认情况下,操作记录的过期时间为 2160 小时(90 天)。
![]()
4. 支持更多 DB2 规则
本期完善了对 DB2 规则的支持,目前已支持从 DDL 规范、DML 规范、DQL 规范、使用建议、命名规范及索引规范多个维度对 DB2 数据源上的 SQL 进行审核。
![]()
5. DB2 审核支持生成回滚语句
新增 DB2 回滚语句功能:当用户在 DB2 数据源上进行 SQL 审核时,可查看执行语句对应的回滚语句。
![]()
6. DB2 审核支持 SQL 上下文
新增 DB2 的 SQL 上下文审核功能。
用户在 DB2 数据源上进行 SQL 审核时,若同时输入多条 SQL,平台将结合 SQL 上下文,给出相应的审核意见。
例如,如果用户在工单中输入了两条 SQL:创建一张新表 T11,并向其中插入一个新字段。在审核第二句 SQL 时,平台将模拟执行建表语句,并根据上下文给出相应的审核意见。因此,即使实际数据库中不存在表 T11,第二条 SQL 的审核结果也不会触发表不存在的告警。
![]()
7. DB2 审核支持 SQL 分析
新增 DB2 数据源上的 SQL 分析功能。
现在用户可以在 SQL 审核时查看该条 SQL 语句的解析结果,包括执行计划、性能统计、表结构信息等。目前该功能仅支持对 DML 语句进行 SQL 分析。
![]()
三、完整的 Release 信息
【社区版】
新特性:
优化:
-
[#1549] 界面优化
-
[#1597] 优化 scannerd 采集慢日志文件后上传 SQL 的流程
-
[#1592] 优化社区版页面上对于企业版功能的提示信息
-
[#1580] 优化规则加载流程
-
[#1563] 系统设置部分功能“开启”/“关闭”交互流程优化
-
[#1536] 界面优化,将成员设为项目管理员后,无需设置数据源及操作权限
-
[#1535] 删除规则模板时增加校验条件,限制被使用的规则模版可以被删除
-
[#1365] SMTP 配置新增配置项可关闭 SSL 安全认证
Bug 修复:
-
[#1614] 解决更新扫描任务时,无法移除数据源和数据库的问题
-
[#1618] 解决当工单为带上线状态时,无法中止上线的问题
-
[#1599] 修复 MySQL update 生成回滚语句有误的问题
-
[#1588] 修复智能扫描任务审核时报错"Error 1046: Data too long"的问题
-
[#1482] 修复慢日志扫描任务 SQL 详情出现空白 SQL,阻碍扫描任务执行的问题
-
[#1576] 修复审核规则”子查询不支持 LIMIT“可能出现 panic 的问题
-
[#1553] 修复 MySQL 审核规则“表中包含有太多的列”,在扫描任务中无效的问题;
-
[#1487] 修复重复安装 SQLE,钉钉无法收到审批的问题
-
[#1556] 修复 MySQL 规则"对条件字段使用负向查询"触发不成功的问题
-
[#1554] 规则“复合索引的列数量不建议超过阈值” 触发存在不成功的问题
-
[#1545] 修复 AuditPlanSQLV2 model 的 GetFingerprintMD5() 方法极小概率出现死循环的问题
-
[#1518] 智能扫描任务中,修复【SQL分析】操作返回的 "database not selected" 错误
-
[#1396] 即时通讯工具的配置加密保存
【企业版】
新特性:
-
支持对 Mycat 进行工单审核
-
支持对 TDSQL MySQL 进行工单审核
-
支持操作记录的过期时间配置
-
支持更多 DB2 规则
-
DB2 审核支持 SQL上下文
-
DB2 审核支持生成回滚语句
-
DB2 审核支持 SQL 分析
-
DB2 审核支持基础对象验证
优化:
Bug 修复:
-
修复添加白名单时在弹窗中无法输入 SQL 语句的问题
-
修复 OB for MySQL TopSQL 存在空值导致智能扫描审核失败报错 "the node is empty after parse" 的问题
-
修复智能扫描 MySQL 慢日志审核中 scanner 扫描慢日志文件时,当 SQL 存在换行则解析不完整的问题