背景信息
系统管理员授予用户开发规范操作权限后,用户可以在安全规范的环境中管理 SQL 检查规范。
用户在 SQL 窗口/创建数据库变更/创建表场景下执行 SQL 语句时,ODC 会根据配置的 SQL 检查规范检测 SQL 语句。
本篇文档旨在介绍如何编辑和执行 SQL 检查规范。
概念介绍
规则级别:是指某个 SQL-Check 规则的等级。规则级别划分为以下 3 类:
符合规范:即命中该条规则的 SQL 是符合规范的,不需要任何改进。
建议改进:即命中该条规则的 SQL 存在问题,但是问题不太严重,可以改进,也可以不改进,通常只会给用户一个提示。
必须改进:即命中该条规则的 SQL 存在严重问题,不改进直接执行的话会影响到数据 or 业务安全,必须改进后才能执行。
规则状态:该状态用于指示某条 SQL-Check 规则的启用状态,如果启用则会使这条规则在用户发起工单或者执行 SQL 时进行检测,如果禁用则等效于不存在这条规则。
规则类型:指示该规则应用的数据库对象类型,从目前的实现来看可以分为以下几类:
TABLE:表明该条规则是作用于表对象上的。
SELECT:表明该条规则是作用于查询语句上的。
INSERT:表明该条规则是作用于插入语句上的。
UPDATE:表明该条规则是作用于更新语句上的。
DELETE:表明该条规则是作用于删除语句上的。
DDL:表明该条规则是针对 DDL 进行检测的。
DML:表明该条规则是针对于 DML 进行检测的。
DQL:表明该条规则是针对于 DQL 进行检测的。
INDEX:表明该条规则是针对于 INDEX 创建语句进行检测。
执行流程
拥有开发规范操作权限的用户在环境中编辑和启用 SQL 检查规范。
ODC 用户在命令行窗口、匿名块窗口、数据库变更中执行 SQL 语句时,则会发起 SQL 规范检查。
符合 SQL 规范则会执行 SQL 语句,否则拦截 SQL 语句。
前提条件
拥有开发规范操作权限的用户。
操作步骤
示例:在 SQL 检查规范的测试环境中编辑并启用规则列必须注释后,编辑和执行 CREATE TABLE SQL 语句并会进行 SQL 规范检查。
信息项 | 示例值 |
项目名称 | odc_4.2.0 |
数据源 | mysql_4.2.0 |
数据库名称 | odc_test |
表名称 | employee |
登录 Web 版 ODC 后,在项目协同窗口中单击 安全规范 > 环境 > 测试 > SQL 检查规范。
如上图所示,在 SQL 检查规范页签中,编辑 规则名称 列要有注释。
单击 提交,完成修改该规范。
在 SQL 检查规范页签中,启用 列要有注释。
在项目协同窗口中单击 项目 > 全部项目 > odc_4.2.0。
单击数据库,登录该数据库并进入 SQL 开发窗口。
在 SQL 窗口中,编辑 SQL 语句以创建表
employee
,并单击 运行 F8 运行当前 SQL 窗口中所有的 SQL 语句。CREATE TABLE `odc_test`.`employee` ( `emp_no` int(120) NULL, `birthday` date NULL, `name` varchar(120) NULL ) DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci ;
如上图所示,日志中会提示 没有列注释。