---
title: "SQL 文件审核（analyze sql_review） - 敏捷诊断工具 V4.3.0 | OceanBase 文档中心"
description: SQL 文件审核（analyze sql_review） 本文适用于独立部署 obdiag 的场景。 obdiag analyze sql_review 从本地 SQL 文件或目录读取语句（按语句拆分），对每条 SQL 执行与 obdiag analyze sql 相同的内置 SQL Review 规则，输出 HTM…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*5ZXST55u540AAAAAAAAAAAAADiGDAQ/original) 敏捷诊断工具V 4.3.0

# SQL 文件审核（analyze sql_review）

更新时间：2026-07-23 16:36:01

[编辑](https://github.com/oceanbase/odt-doc/edit/V4.3.0/zh-CN/450.analyze/510.analyze_sql_review.md)  

本文适用于独立部署 obdiag 的场景。`obdiag analyze sql_review` 从本地 SQL 文件或目录读取语句（按语句拆分），对每条 SQL 执行与 `obdiag analyze sql` 相同的内置 SQL Review 规则，输出 HTML 或 JSON 报告。适合离线审核、发布前检查或与流水线集成。

命令执行需要**至少指定一次 `--files`**（可多次指定多个路径）。路径可以是单个 `.sql` 文件，或目录（会递归查找目录下的 SQL 文件）。

数据库连接用于在部分规则或后续扩展中访问元数据（当前实现以规则静态分析为主）；未指定 `--user` 时使用 `config.yml` 中配置的 sys 租户信息连接。配置说明参见 [obdiag 配置](https://www.oceanbase.com/docs/common-obdiag-cn-1000000005726796)。

## 使用说明

```shell
obdiag analyze sql_review [options]

```

选项说明如下：

| 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 |
| --- | --- | --- | --- | --- |
| --files | **是** | string | 无 | SQL 文件路径或目录；可重复指定多个 `--files`。 |
| --user | 否 | string | 默认为空 | 业务租户用户，格式可为 `user@tenant`、`user@tenant#cluster` 或 `cluster:tenant:user`。不指定则使用 `config.yml` 中配置的 sys 租户。 |
| --password | 否 | string | 空 | 与 `--user` 配合时的密码。 |
| --host | 否 | string | 默认为空 | 与 `--user` 同时使用时指定主机；默认取 `config.yml` 中的 `obcluster.db_host`。 |
| --port | 否 | string | 默认为空 | 与 `--user` 同时使用时指定端口；默认取 `config.yml` 中的 `obcluster.db_port`。 |
| --tenant_name | 否 | string | 默认为空 | 预留/后续与基于库的审核能力相关；当前可选。 |
| --level | 否 | string | notice | 规则级别过滤，可选值为 `critical`、`warn`、`notice`、`ok`。 |
| --output | 否 | string | html | 生成的报告格式，可选值为 `html` 或 `json`。 |
| --store_dir | 否 | string | 当前目录 | 报告生成后所在目录；每次运行创建 `obdiag_sql_review_<时间戳>/`，内含 `result.html` 或 `result.json`。 |
| -c | 否 | string | `~/.obdiag/config.yml` | 配置文件路径。 |
| --inner_config | 否 | string | 默认为空 | obdiag 自用配置。 |
| --config | 否 | string | 默认为空 | 集群配置，格式为 `--config key=value`，可多次指定。支持指定的配置可参见 [obdiag 配置](https://www.oceanbase.com/docs/common-obdiag-cn-1000000005726796) |
| --config_password | 否 | string | 默认为空 | 使用加密配置文件时的解密密码。具体介绍可参见 [配置文件加密](https://www.oceanbase.com/docs/common-obdiag-cn-1000000005726841)。 |
| -h/--help | 否 | - | - | 查看帮助。 |
| -v/--verbose | 否 | - | - | 详细日志。 |

#### 说明

`--host` / `--port` 仅在同时指定 `--user` 时生效；否则将使用集群配置中的地址连接 sys 租户。

## SQL 文件格式

- 单个文件内可包含多条语句，语句之间以英文分号（`;`）分隔，具体解析以 obdiag 使用的 SQL 切分为准。
 - 建议每条语句语义完整，避免将存储过程等复杂块拆断导致解析异常。

## 规则说明

与 [SQL 审计分析与规则审核（analyze sql）](https://www.oceanbase.com/docs/common-obdiag-cn-1000000005726853) 使用同一套 Review 规则（如全表扫描、`SELECT *`、大 IN、无 WHERE 的更新删除等）。规则实现位于 obdiag 源码 `sql/rules/review`，随版本更新。

## 使用示例

### 审核单个文件

```bash
obdiag analyze sql_review --files ./schema/migration.sql

```

### 审核多个路径并输出 JSON

```bash
obdiag analyze sql_review \
  --files ./sql/patch1.sql \
  --files ./sql/patches/ \
  --output json \
  --store_dir ./review_out

```

### 使用业务租户连接

```bash
obdiag analyze sql_review \
  --files ./app/queries.sql \
  --user appuser@mytenant \
  --password '***'

```

### 无配置文件（开箱即用）

```bash
obdiag analyze sql_review \
  --files ./ddl.sql \
  --config db_host=xx.xx.xx.xx \
  --config db_port=2881 \
  --config tenant_sys.user=root@sys \
  --config tenant_sys.password=***

```

## 与 analyze sql、sql_syntax 的区别

- 与 `obdiag analyze sql` 的对照见 [SQL 审计分析与规则审核](https://www.oceanbase.com/docs/common-obdiag-cn-1000000005726853) 文末表格。
 - `obdiag tool sql_syntax` 仅对**单条** SQL 做 **EXPLAIN** 校验，不做规则集批量报告，具体可参见 [SQL 语法校验工具](https://www.oceanbase.com/docs/common-obdiag-cn-1000000005726839)。

 上一篇 下一篇 ![有帮助](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) 咨询热线
