SQL 审核 | SQLE 2.2308.0 来啦!


8 月 26 日「源创会」北京站,聊聊 AI 大模型与底层技术 >>>

SQL 审核工具 SQLE 2.2308.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
社区版和企业版功能对比 https://actiontech.github.io/sqle-docs/docs/support/compare
在线体验-社区版 http://demo.sqle.actionsky.com
超级管理员:admin    密码:admin
在线体验-企业版 http://demo.sqle.actionsky.com:8889
用户:admin    密码:admin

 

 

二、新版本主要功能介绍

# 社区版

1. 智能扫描支持 SQL 文件扫描

平台新增扫描任务,当前支持对 SQL 文件进行扫描。利用该扫描任务,用户可以在批量执行 SQL 前发现潜在的安全漏洞、提高数据库性能及数据库开发质量。以下是简单的功能试用:

1. 创建扫描任务,任务类型选择 SQL 文件。

 

2. 进入终端,执行 Scanner 文件,执行语句如下:

./scannerd sqlfile -H127.0.0.1 -N"SQLfile" -P"10000" -J"default" -D/root/sqle/sqle/cmd/scannerd/scanners/mybatis/testdata/ -A"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJ0ZXN0MDcyNCIsImV4cCI6MTcyMTcyODU0NywibmFtZSI6ImFkbWluIn0.CojdTvBkr-iN_26tWI-Kr6mMnJt1NIDr-Y3v7m9ySuM"
 
-J, --project:说明扫描任务所在项目,例如“default”;
-H, --host string:指定SQLE主机所在地址;
-P, --port string:指定SQLE所在端口;
-N, --name string:指定扫描任务名称,scannerd会将获得的SQL传至指定的任务池中审核;
-D, --dir string:指定要扫描的XML文件路径
-A, --token string:输入扫描任务凭证token;
-K, --skip-sql-file-audit:只上传sql,不审核sql
-S, --skip-error-sql-file; 跳过无法解析的sql文件

 

3. 获得执行结果。

4. 用户也可在扫描任务详情中获得扫描结果并查看审核建议。

2. 工单上线人支持按实例匹配

平台当前支持按实例匹配工单上线人(执行上线操作的成员),优化先前存在的一个工单里所有数据源都只能由相同的人上线的问题,在上线环节实现更精细的权限控制。若在流程模板中将上线人设置为“匹配拥有数据源权限的成员”,工单详情中,待上线人处将显示对应实例上具有上线操作的成员。

以下是简单的功能试用:

1. 添加成员 u1、u2,为 u1 绑定 MySQL 实例上的 DBA 权限,为 u2 绑定 Oracle 实例上的 DBA 权限。

2. 修改规则模板,将上线人设置为“匹配拥有数据源权限的成员”。

3. 创建一则工单,其中包含对 MySQL 实例及 Oracle 实例的 SQL 操作。审核通过后,查看待操作人分别为该实例上具有上线权限的成员。

4. 登录待操作人账号 u1,可以对 u1 绑定的 MySQL 实例执行上线操作,同时无权对 Oracle 数据源进行上线操作。

3. IntelliJ IDEA 插件支持同时审核多个 MyBatis 文件

先前提供的审核插件中,审核含有跨命名空间引用的 MyBatis 文件时,会报 ID 不存在的错误。本期改进了 IntelliJ IDEA插件,现在支持一次性审核文件夹下的所有 XML 文件,只要变量的定义和引用都在同一个文件夹下,就能够成功解析。以下是该功能的简单试用:

如图,在 com文件夹下存在两个XML文件

右键 com文件夹,选中 MyBatis 审核。

获得文件的审核结果。

# 企业版

1. Java 应用零成本接入 SQLE

本期在扫描任务中新增了对 Java 探针方式的支持,将 Java 应用零成本地接入  SQLE。开发人员和 DBA 可以通过任务详情及审核报告掌握应用内的 SQL 及对应审核结果,对 Java 进程中的 SQL 进行质量管控。下面以 SurveyKing 应用为例,进行简单的功能试用:

1. 创建应用程序 SQL 抓取扫描任务。

注:添加的数据源为应用使用的数据源。

 

2. 启动 Java 应用进入应用目录下,并执行以下命令(以下命令需要在本地编辑替换完参数后,一次性拷贝到环境内执行)。

SQLE_COLLECT_ENABLE=true \
SQLE_BASE_URL=http://10.186.64.175:10000 \
SQLE_TASK_NAME=probe \
SQLE_TASK_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJwcm9iZSIsImV4cCI6MTcyMzI2MTE4OSwibmFtZSI6ImFkbWluIn0.pkYBOYsQ_Z6KhaweWdE44hkkDG8Ka73AWaM9mdXthNc \
SQLE_EXCLUDE_JAVA_FILE=UserServiceImpl.java \
SQLE_LOG_FILE=/tmp/collect.log \
java -javaagent:/opt/surveyking/sql-agent-1.0-SNAPSHOT.jar \
-jar surveyking-v0.3.0-beta.4.jar \
--server.port=1991 \
--spring.datasource.url=jdbc:mysql://10.186.64.175:3306/jw \
--spring.datasource.username=root \
--spring.datasource.password=mysqlpass \
& >>/opt/surveyking/std.log

 

注:Java Aagent 包为 SQLE 定制。

3. 进入平台,可以看到目前应用已经执行的 SQL。

4. 查看审核报告,用户可以通过审核任务的审核报告了解到应用的 SQL 是否符合预设审核规则,以便及时作出调整。

2. 新增对企业版插件中止上线的支持

本期在 OceanBase For MySQL、TDSQL、TiDB、Oracle 四类数据源上,新增了中止上线功能。当这类数据源上的 SQL 出现上线阻塞时,用户能够在工单界面一键中止上线操作,减少人工干预的成本。

 

3. 支持 OceanBase For Oracle 数据源

本期新增 OceanBase For Oracle 数据源插件,用户可以对 OceanBase For Oracle 类型的数据源进行监管,并根据已提供的分布式规则进行 SQL 审核。

 

4. 新增 TDSQL 分布式审核规则

本期新增 TDSQL 分布式审核规则,以满足分布式应用场景。规则如下: 

  • 禁止对分片表使用 DELETE/UPDATE...LIMIT 语句

  • 禁止分片表和非分片表 JOIN

  • 禁止对分片键进行 UPDATE 操作

  • 禁止在查询分片表时引用和操作变量

  • 分片表 INSERT 操作,插入字段必须包含分片键

  • 分片表 SELECT、DELETE、UPDATE 操作,条件字段必须包含分片键

  • 分片表 SELECT、INSERT、DELETE、UPDATE 操作, 禁止对分片键使用函数

  • 分片表做关联,禁止出现跨库 JOIN

  • 分片表做关联,关联字段必须是 SHARDKEY,非 SHARDKEY 关联字段不允许做关联查询

 

三、完整的 Release 信息

# 社区版

提示:

  • [#1754] 老版本升级到 2.2308.0 需要对 SQLE 的元数据表进行结构变更

新特性:

  • [#1690] 智能扫描支持 SQL 文件扫描

  • [#1746] IntelliJ IDEA 插件支持同时审核多个 MyBatis 文件

优化:

  • [#1605] 工单上线人细化到按数据源匹配

  • [#1729] scannerd 扫描 MyBatis、SQL 文件时,建议输出所有审核结果

  • [#1731] 工单名称等资源放宽长度限制

Bug 修复:

  • [#1725] 修复导出含有被删除的数据源的工单,程序 panic 的问题

 

# 企业版

新特性:

  • [#1718] 多种类型的数据源插件支持中止上线功能

  • [#884] 支持 JAVA 探针采集 JAVA 应用 SQL

  • [#868] 增加 TDSQL 分布式审核规则

优化:

  • [#875] 部分插件升级到 V2 版本

Bug 修复:

  • [#888] 修复用户通过 OAuth 2.0 登录后,不能跳转到主页的问题

  • [#883] 修复自定义接口的 Swagger 接口定义错误问题

  • [#879] 修复 DB2 库表元数据扫描,建表语句审核有误的问题

  • [#875] 修复 DB2 库表元数据扫描失败的问题


相關推薦

2023-11-04

全方位的 SQL 质量管理平台,覆盖开发至生产环境的 SQL 审核和管理。支持主流的开源、商业、国产数据库,为开发和运维提供流程自动化能力,提升上线效率,提高数据质量。 更多功能特性及使用场景:《让所有人不再为 SQL

2023-12-02

全方位的 SQL 质量管理平台,覆盖开发至生产环境的 SQL 审核和管理。支持主流的开源、商业、国产数据库,为开发和运维提供流程自动化能力,提升上线效率,提高数据质量。 更多功能特性及使用场景:《让所有人不再为 SQL

2023-06-03

SQL 审核工具 SQLE 2.2305.0 于今天发布。以下对新版本的 Release Notes 进行详细解读。文章主要分为以下三部分内容: 一、SQLE 项目介绍 二、新版本主要功能介绍 三、完整的 Release 信息 一、SQLE 项目介绍 爱可生

2023-07-01

SQL 审核工具 SQLE 2.2306.0 于今天发布。以下对新版本的 Release Notes 进行详细解读。 文章主要分为以下三部分内容: 一、SQLE 项目介绍 二、新版本主要功能介绍 三、完整的 Release 信息 一、SQLE 项目介绍 爱可生开源

2023-10-28

全方位的 SQL 质量管理平台,覆盖开发至生产环境的 SQL 审核和管理。支持主流的开源、商业、国产数据库,为开发和运维提供流程自动化能力,提升上线效率,提高数据质量。 更多功能特性及使用场景:《让所有人不再为 SQL

2023-09-29

将带来焕然一新的体验✨,届时热忱欢迎您的试用。 SQL 审核工具 SQLE 2.2309.0 于今天发布。以下对新版本的 Release Notes 进行详细解读。 内容概览: 一、SQLE 项目介绍 二、新版本主要功能介绍     社区版

2023-05-27

SQL 审核工具 SQLE 2.2305.0-pre4 于今天发布。以下对新版本的 Release Notes 进行详细解读。 文章主要分为以下三部分内容: 一、SQLE 项目介绍 二、新版本主要功能介绍 三、完整的 Release 信息 一、SQLE 项目介绍 爱可生开

2023-06-10

SQL 审核工具 SQLE 2.2306.0-pre1 于今天发布。以下对新版本的 Release Notes 进行详细解读。 文章主要分为以下三部分内容: 一、SQLE 项目介绍 二、新版本主要功能介绍 三、完整的 Release 信息 一、SQLE 项目介绍 爱可生开源

2023-06-17

SQL 审核工具 SQLE 2.2306.0-pre2 于今天发布。以下对新版本的 Release Notes 进行详细解读。 文章主要分为以下三部分内容: 一、SQLE 项目介绍 二、新版本主要功能介绍 三、完整的 Release 信息 一、SQLE 项目介绍 爱可生开源

2023-07-08

SQL 审核工具 SQLE 2.2307.0-pre1 于今天发布。以下对新版本的 Release Notes 进行详细解读。 文章主要分为以下三部分内容: 一、SQLE 项目介绍 二、新版本主要功能介绍 三、完整的 Release 信息 一、SQLE 项目介绍 爱可生开源

2023-06-23

3.0 发布,更新内容如下: 新功能 支持 Snowflake 的 SQL 审核 新增数据导出中心      支持 Oracle 的数据脱敏 改进 支持配置外部审批节点,并用于自定义审批流中 自定义审批流支持「退回」操作

2023-07-11

Bytebase 是一个基于网络、零配置、无依赖的数据库 Schema 变更和版本控制管理工具,适用于开发人员和 DBA。 Bytebase 2.4.0 现已发布,更新内容如下: 新功能 支持全局控制数据查询及导出的权限,并支持自定义审批流。 支持

2023-02-03

本次更新: 更新JCEF 内核(请切到JCEF分支) 颜值提升 解决jx分支新窗口无法打开新TAB的问题 介绍: easy-browser是java开源浏览器,基于jxbrowser/JCEF实现。 支持ARM X86 架构的处理器,windows mac linux 三大操作系统。 特性 HTML5

2023-11-08

昨晚 OpenAI 的开发者大会后开放了 DALL·E 3 的 API,今天花了一点时间在 AIdea 中增加了对 DALL·E 3 的支持。 简单来说,AIdea 类似于 POE,它是一款集成了主流大语言模型以及绘图模型的开源 APP。如果你还不知道它,那么可以简单