---
title: "SQL 检查规范 - 开发者中心 ODC V4.2.3 | OceanBase 文档中心"
description: SQL 检查规范 背景信息 系统管理员授予用户开发规范操作权限后，用户可以在 安全规范 的 环境 中管理 SQL 检查规范。 用户在 SQL 窗口/创建数据库变更/创建表场景下执行 SQL 语句时，ODC 会根据配置的 SQL 检查规范检测 SQL 语句。 本篇文档旨在介绍如何编辑和执行 SQL 检查规范。 概念介绍…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*lqS5SYzz_YEAAAAAAAAAAAAADiGDAQ/original) 开发者中心 ODCV 4.2.3

# SQL 检查规范

更新时间：2026-04-13 15:31:14

[编辑](https://github.com/oceanbase/odc-doc/edit/V4.2.3/zh-CN/700.database-change-management/400.sql-check-specification.md)  

## 背景信息

系统管理员授予用户开发规范操作权限后，用户可以在 **安全规范** 的 **环境** 中管理 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 创建语句进行检测。

## 执行流程

![2.2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/420/1100.database-change-management/3.sql-check-specification/2.2.png)

1. 拥有开发规范操作权限的用户在环境中编辑和启用 SQL 检查规范。
 2. ODC 用户在命令行窗口、匿名块窗口、数据库变更中执行 SQL 语句时，则会发起 SQL 规范检查。
 3. 符合 SQL 规范则会执行 SQL 语句，否则拦截 SQL 语句。

## 前提条件

拥有开发规范操作权限的用户。

## 操作步骤

示例：在 SQL 检查规范的测试环境中编辑并启用规则 **列必须注释** 后，编辑和执行 CREATE TABLE SQL 语句并会进行 SQL 规范检查。

| 信息项 | 示例值 |
| --- | --- |
| 项目名称 | odc_4.2.0 |
| 数据源 | mysql_4.2.0 |
| 数据库名称 | odc_test |
| 表名称 | employee |

1. 登录 Web 版 ODC 后，在项目协同窗口中单击 **安全规范** > **环境** > **测试** > **SQL 检查规范**。

   ![3](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/420/1100.database-change-management/3.sql-check-specification/3.1.png)
 2. 如上图所示，在 SQL 检查规范页签中，**编辑** 规则名称 **列要有注释**。
 3. 单击 **确定**，完成修改该规范。

   ![4](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/420/1100.database-change-management/3.sql-check-specification/4.0.png)
 4. 在 SQL 检查规范页签中，启用 **列要有注释**。

   ![5](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/420/1100.database-change-management/3.sql-check-specification/5.png)
 5. 在项目协同窗口中单击 **项目** > **全部项目** > **odc_4.2.0**。

   ![6](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/420/1100.database-change-management/3.sql-check-specification/6.png)
 6. 单击数据库，登录该数据库并进入 SQL 开发窗口。

   ![7](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/420/1100.database-change-management/3.sql-check-specification/7.png)
 7. 在 SQL 窗口中，编辑 SQL 语句以创建表 `employee`，并单击 **运行 F8** 运行当前 SQL 窗口中所有的 SQL 语句。

   ![8](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/420/1100.database-change-management/3.sql-check-specification/8.1.png)

   ```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 ;

   ```
 8. 如上图所示，日志中会提示 **没有列注释**。

## 相关文档

- [用户和角色](https://www.oceanbase.com/docs/common-odc-1000000000468346)
 - [项目协同管理](https://www.oceanbase.com/docs/common-odc-1000000000468293)
 - [风险等级、风险识别规则与审批流程](https://www.oceanbase.com/docs/common-odc-1000000000468287)
 - [SQL 窗口规范](https://www.oceanbase.com/docs/common-odc-1000000000468292)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
