全部产品
Search
文档中心

云数据库 OceanBase:SQL 检查规范

更新时间:Apr 26, 2024

背景信息

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

执行流程

image.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 检查规范

    image

  2. 如上图所示,在 SQL 检查规范页签中,编辑 规则名称 列要有注释

  3. 单击 提交,完成修改该规范。

    image

  4. 在 SQL 检查规范页签中,启用 列要有注释

    image

  5. 在项目协同窗口中单击 项目 > 全部项目 > odc_4.2.0

    image.png

  6. 单击数据库,登录该数据库并进入 SQL 开发窗口。

    image.png

  7. 在 SQL 窗口中,编辑 SQL 语句以创建表employee,并单击 运行 F8 运行当前 SQL 窗口中所有的 SQL 语句。

    image.png

    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. 如上图所示,日志中会提示 没有列注释

相关文档