2.2306.0-pre2 SQLE Release Notes SQL 审核工具 SQLE 2.2306.0-pre2 于今天发布。以下对新版本的 Release Notes 进行详细解读。 ,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 支持更多 DB2 规则 本期完善了对 DB2 规则的支持,目前已支持从 DDL 规范、DML 规范、DQL 规范、使用建议、命名规范及索引规范多个维度对 DB2 数据源上的 SQL 进行审核。 【企业版】 新特性: 支持操作记录的过期时间配置; 新增 25 条 DB2 审核规则。 慢日志审核中 scanner 扫描慢日志文件时,当 SQL 存在换行则解析不完整的问题。
目前SQL审核工具普遍存在几个关键痛点:对不同数据库的审核规则支持不一,难以适配多样化的数据库环境;解析能力有限,面对复杂SQL时力不从心;只能机械“报错”,却无法给出真正有效的优化建议。 今天,我们将聚焦于PawSQL的审核规则体系,带大家深入了解它是如何帮助企业构建高效、可靠SQL审核流程的。 完备均衡审核规则集 PawSQL在审核规则的全面性与对各类数据库支持的均衡性方面遥遥领先。 对象设计审核 数据库对象设计是构建高效、安全、可靠数据库系统的关键环节,直接影响数据的完整性、一致性、可维护性与查询性能。 PawSQL的对象设计审核虽以SQL语句为输入,实则关注SQL操作的结果。 2. 对象操作审核 对表、视图、索引等数据库对象的增、删、改操作,若处理不当,可能引发应用程序兼容性问题,甚至影响高并发环境下的服务可用性。 Step2. 启用规则与定制阈值 根据具体业务场景,灵活启用或禁用相关规则,并可对部分规则设置阈值(如索引数量、字段长度等),实现审核策略的精准适配。
1.2205.0-pre2 SQLE Release Notes SQL审核工具 SQLE 1.2205.0-pre2 于今天发布。以下对新版本的 Release Notes 进行详细解读。 ,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 LDAP一致,可参考文档:https://actiontech.github.io/sqle-docs-cn/3.modules/3.8_setting/ldap_configuration.htm 2. SQL审核时gh-ost 的dry run 失败的提示不明显,审核级别使用 error 级别 SQL审核中gh-ost dry-run失败的SQL,它在后续上线过程中大概率还是会执行失败,因此在审核阶段将审核级别提高 [#524] 修复审核任务 Oracle Top SQL 指定数据库后获取Top SQL失败的问题。
1.2201.0-pre2 SQLE Release Notes SQL审核工具 SQLE 1.2201.0-pre2 于今天发布。 注:本次升级为预览版本,仅可用新功能试用,不保证平滑升级 一、SQLE 项目介绍 爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 Server 审核插件,支持 SQL Server 审核工单并上线,参考:https://actiontech.github.io/sqle-docs-cn/3.modules/3.7_auditplugin /auditplugin_development.html [#110] 支持页面展示SQLE 前后端版本信息 [#202] 提交审核工单时,可以给每条SQL增加独立的备注
---- 产品概述 体验环境 体验产品:SQLE 软件版本:sqle-ce-1.2111.0-pre2 部署环境:CentOS Linux release 7.9.2009 (Core) 产品介绍 SQLE SQL 审核工具。 用户细分 主要使用人员:开发人员和 DBA ;开发人员希望便捷、高效、自主可控的上线业务 SQL ;DBA 希望便捷、高效、安全、高质量的审核 SQL 上线。 功能体验分析 (1)创建SQL工单-SQL语句不支持输入联想,建议增加输入联想,提高录入效率 (2)创建SQL工单-SQL语句对于明显语法错误不能及时提示,建议增加语法错误提示,提前发现明显问题 (3) 创建SQL工单-SQL语句输入框高度过高,点击审核后不方便查看到结果,建议降低高度增加宽度 (4)创建SQL工单-工单不支持自定义上线时间,同时也不支持定时上线 表现层 平台整体以白灰色色调为主,配色稳重简约
1.2203.0-pre2 SQLE Release Notes SQL审核工具 SQLE 1.2203.0-pre2 于今天发布。 注:本次升级为预览版本,仅可用新功能试用,不保证平滑升级 一、SQLE 项目介绍 爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 ,可以兼容不同数据库配置参数; 优化 [#232] 工单邮件消息推送完善,新增推送场景,丰富推送的内容; [#375] Oracle 审核任务 TopSQL 展示数据优化; [#268] 优化审核任务的审核列表 ,提示更多信息,例如:评分,通过率,审核级别; 缺陷修复 [#374] 修复审核任务慢日志采集中出现 administrator command: Binlog Dump GTID(企业版功能)
,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 支持快速审核 SQL 现在,您可以直接提交需要审核的 SQL,无需创建工单,即刻获得审核结果。这个全新的功能将带来更快速、更高效的审核体验。 来一起简单体验一下: 进入 “项目” 页面后,左边栏增加了 “SQL审核” 功能选项,点击后展开的是 SQL 审核的历史审核记录列表。 SQL 审核功能 点击右上角的 “创建审核”,就可以开始审核啦! 与工单审核不同的是,新功能还额外支持不连接数据源的静态审核,可以在没有运行时环境的情况下,对 SQL 进行全面的语法和语义分析。 SQL 语句审核 编辑好 SQL 之后点击编辑框下方的 “审核” 按钮,即可查看到审核结果。审核结束后,可以回到审核记录列表追溯到每次审核的信息。 审核结果 2.
二、 功能介绍 SQLE 的开发阶段 SQL审核主要是通过 SQLE 的功能审核任务来完成的,该功能定位是应对全场景 SQL 质量管控解决方案,能够在应用开发、测试、上线、生产等不同阶段对 SQL 进行质量管控 将 SQL 采集与SQL审核结合对数据库进行长期审核,目前支持Mybatis 扫描,慢日志,库表元数据,TopSQL ,应用程序 SQL 抓取(java应用)的场景审核。 应用开发阶段可以通过审核任务的 Mybatis 扫描类型的任务对应用代码做实时审核,Mybatis 扫描的审核任务需要通过 SQLE 提供的 Scanner 工具进行SQL采集并推送到 SQLE 进行SQL 因此在开发阶段也可以将SQL审核作为一个检查模块集成进CI流程。将 SQL审核事宜前置到开发阶段能够减少后期SQL审核的压力。 创建审核任务 [sunjian0331-2.png] 2.
将 SQL 采集与SQL审核结合对数据库进行长期审核,目前支持Mybatis 扫描,慢日志,库表元数据,TopSQL ,应用程序 SQL 抓取(java应用)的场景审核。 因此在开发阶段也可以将SQL审核作为一个检查模块集成进CI流程。将 SQL审核事宜前置到开发阶段能够减少后期SQL审核的压力。 创建审核任务 2. 在 jenkins 对应的任务上加一个构建流程 SQLE 的 Scanner 与CI/CD的集成方式是通过添加bash类型的任务,一般CI/CD都支持该方式。 当 jenkins 任务触发时会进行SQL审核 Jenkins 集成后进行SQL审核的效果如下两张图所示: 审核结果会立即通过 Jenkins 的任务返回,当 SQL 不合规触发规则建议,可以看到上图所示的构建失败的结果 本文关键字:#SQLE# #SQL审核# #事前审核#
1.2206.0-pre1 SQLE Release Notes SQL审核工具 SQLE 1.2206.0-pre1 于今天发布。以下对新版本的 Release Notes 进行详细解读。 ,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 支持TIDB审核插件【企业版】 SQLE通过插件的形式支持TiDB的审核,我们调研了MySQL与TiDB的部分差异,在TiDB插件内引入了大部分MySQL的审核规则,并去掉TiDB不兼容的场景,使得SQLE 以下是TiDB规则的截图: 2. 支持TiDB专属审核规则【企业版】 group by语句必须包含select列表中的所有非聚合列 检查 SQL需要遵守 'MySQL的ONLY_FULL_GROUP_BY' 模式;例如:select a
如上文所述,PawSQL审核引擎的设计目标是使用尽量少的审核规则,覆盖尽可能全的SQL语法和结构,确保尽量高的审核正确率。 PawSQL,公众号:PawSQLPawSQL审核 | SQL审核引擎的设计目标 基于以上的三个目标,PawSQL设计了自己的SQL审核规则体系。 PawSQL的审核规则体系是以SQL对数据库的操作类型分成三大类,即对象设计、对象操作和数据操作。 对象设计的审核的审核对象虽然是SQL语句,但是其实它是对SQL操作的结果进行审核。 PawSQL中对于对象设计的审核规则是按照数据库对象来进行组织的,当前的版本共计25个审核规则: 2. 对象操作审核 数据库对象的操作通常指的是对数据库中的各种对象的增、删、改等行为。
前言 经常可以看到市面上的SQL审核工具号称自己审核规则很多,支持的数据库类型很全。 稍微复杂一点的SQL就报语法错误;或是出现大面积的误报或漏报的情况。审查规则越多越好吗?市场上到底需要什么样的SQL审核引擎?看一下SQL优化领域的领先厂商PawSQL如何设计它的SQL审核引擎。 1.1 抽象化 想要审核规则尽量少,但是覆盖度却尽量广,就需要对审核规则的模式进行抽象化,这样才能用同一个规则覆盖不同的数据库类型的SQL,不同的SQL写法。 目标2.覆盖尽量多的SQL语句结构 SQL语句的结构可以从以下几个维度进行分类,根据这些维度的不同组合,SQL语句呈现出多样的结构形态,复杂程度也有所不同。 降低误报率 误报率衡量审核的准确率,即报告的问题是否是真实的SQL质量问题。 审查规则案例2:尽量避免使用SELECT * SQL片段 违反 SELECT * FROM ...
2.2307.0-pre2 SQLE Release Notes SQL 审核工具 SQLE 2.2307.0-pre2 于今天发布。以下对新版本的 Release Notes 进行详细解读。 ,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 支持自定义审核规则 当用户根据业务需求需要创建新的审核规则时,可以使用平台的自定义规则功能。目前,用户可以在平台上通过正则表达式自定义 SQL 审核的规范,且新建的审核规则将作为全局资源使用。 工单提交审核时,将基于数据源应用的规则模板及自定义审核规则,给出相应审核结果。 2. 优化 IDEA 插件审核结果展示效果 针对 IDEA 插件中的审核结果展示,本期做了如下两项优化: 1. 调整了审核 SQL 和审核结果的页面布局,提升用户体验。 2. 增加了对 SQL 分析结果的展示,用户可以查看更完整的审核结果。
MySQL 审核场景化改造兼容事后审核模式 目前,SQLE的SQL审核在设计之初是为了满足SQL上线的审核,随着产品发展,我们支持了多场景下的事前事后审核。 目前存在2个问题: (1).无法在不同场景下使用不同的审核规则。 SQL上线的,在部分智能扫描的场景里(慢日志扫描,库表审核等)都是已经上线后的SQL,不应该进行SQL上线的限制。 (2).目前的SQL 审核对不同场景审核的兼容性不友好。 SQLE的SQL审核在设计之初是为了满足SQL上线的审核,通过上下文关联和基础对象验证满足上线SQL的正确性校验,这些在事后审核的场景下过于严格且审核的SQL是已执行过的(慢日志的SQL),导致部分SQL
最近完成了SQL审核功能的上线,发现用户体验上面还是存在一些问题,具体有以下几点: 1.关于字段注释的建议比较多,这些建议开发人员可能没有必要每个字段都进行注释; 2.有些SQL的建议太多,看到之后直接懵了 ,不知道从哪儿下手; 3.有些任务比较紧急,SQL审核方面的任务太多,容易拖延实际工期; 针对以上问题,今天主要想的是按照一定的重要程度讲SQL审核结果进行分类,目前分为必须修改的错误SQL、警告 SQL以及待完善SQL,并且通过将不同的错误状态码按照一定映射关系映射到不同的审核等级上进行分类展示,这样可以高效的处理严重的问题,对于不严重的问题,则可以后续处理,让SQL审核模块更加试用。 今天的主要任务是将那些SQL审核的错误代码进行切分,利用代码进行前后端的分类、抽取、整理等工作,这里就不展示结果了,主要的成果将在这些任务完成之后进行集中展示。从而实现最终的功能。 今天就这么多,做的工作比较琐碎,改天整理一版出来作为最近SQL审核的最终成果。
SQL审核工具发布的思考 关于SQL审核发布 今天将前段时间做的SQL审核工具做了一场发布,邀请了一些后台和前端的开发同事,他们平时可能没有机会坐下来仔细的去审核自己写的SQL,今天通过SQL 审核工具的发布,大家一起聊了聊在写SQL的方面的一些经验和积累,总体来讲效果还是不错的。 由于我们的SQL审核工具具有打分的功能,可以根据当前这个SQL的执行情况,按照公司的开发规范给出一定的分数值,这种直观的反馈还是很吸引人的。 在今天的发布会当中,我们设定了有奖竞猜环节,就是说我们给出一句SQL,让开发人员去猜这个SQL可以打多少分,分数最接近的那个同学就可以得到我们的奖品,大家的兴致还是很高的,都在认真的审视这个SQL,然后通过自己的经验去分析结果 第三、在SQL审核工具的发布会上,大家还是找出了工具中存在的一些问题,可能确实存在一些语句,我们审核的不到位,比如说一个字段的注释是“电话号”,但是实际上字段类型给定的是char(256),这种情况除了人工
1.2207.0-pre2 SQLE Release Notes SQL审核工具 SQLE 1.2207.0-pre2 于今天发布。以下对新版本的 Release Notes 进行详细解读。 新增IDE(Jetbrains系列)审核插件 SQLE的该插件满足开发人员在开发阶段进行实时自助式的静态SQL审核,实现开发阶段审核上线等各个SQL开发阶段的SQL开发规范。 ,如下图所示: 2. ,即当某个存在问题的SQL被修复后SQLE是无法感知到的,依然会对该SQL进行审核。 因此对于智能扫描类的场景提供增量审核的模式,可以忽略到一段时间内不再出现的SQL,仅对某段时间以来的SQL进行审核。
应用的 SQL 抓取和审核; 增加了 Db2 审核插件,支持 Db2 审核工单并上线; 新增了 37 条 MySQL 审核规则,如检查 DDL 是否创建了冗余的索引; 其他体验优化和 Bug 修复。 SQL 的自动采集和统计,用户可以在 SQLE 上通过语句池页面统览应用内的 SQL 的分类与统计,迅速掌握应用内 SQL 的情况; 支持手动或自动审核 SQL ,用户可以在审核报告中知晓应用的 SQL 是否符合预设的审核规则,无论是开发人员还是 DBA 都能实时了解正在运行的业务 SQL 执行状况。 ,可以看到目前应用已经执行的 SQL ; 查看审核报告,用户可以通过审核任务的审核报告了解到应用的 SQL 是否符合预设审核规则以便及时作出调整。 开发人员和 DBA 可以通过「审核报告」、「审核任务的 SQL 语句池」等功能完全掌握应用内的 SQL 审核结果、执行情况以及统计信息,完成了从「开发」直至「上线」这一过程中的 SQL 质量管控。
1.2207.0-pre1 SQLE Release Notes SQL审核工具 SQLE 1.2207.0-pre1 于今天发布。以下对新版本的 Release Notes 进行详细解读。 ,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 以下是OceanBase-MySQL规则的截图: 可以通过现有的数据源页面添加OceanBase实例,如下图: 2. 支持OceanBase MySQL 模式专属审核规则【企业版】 目前OceanBase的规则已能使用MySQL 大部分规则,并增加了2条OB特有规则。 [#666] 修复MySQL的lower_case_table_names配置为2时,部分审核进行库表检查不符合预期的问题; [#667] 修复当MySQL审核语句包含系统表时,SQLE审核会提示表不存在的问题
创建扫描任务,任务类型选择 SQL 文件。 2. 进入终端,执行 Scanner 文件,执行语句如下: . 用户也可在扫描任务详情中获得扫描结果并查看审核建议。 2. 进入平台,可以看到目前应用已经执行的 SQL。 4. 查看审核报告,用户可以通过审核任务的审核报告了解到应用的 SQL 是否符合预设审核规则,以便及时作出调整。 2. 库表元数据扫描,建表语句审核有误的问题 [#875] 修复 DB2 库表元数据扫描失败的问题 往期版本 SQL 审核 | SQLE 2.2307.0 来啦! SQL 审核 | SQLE 2.2306.0 来啦! SQL 审核 | SQLE 2.2305.0 来啦! SQL 审核 | SQLE 2.2304.0 来啦!