> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pawsql.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> PawSQL 是一个产品：Cloud 是公网部署形态，Engine / Optimizer / Auditor / Advisor / Patroller 是同一产品的组件与交付形态，不是彼此独立的产品。 / PawSQL is a single product: Cloud is the public deployment form, while Engine / Optimizer / Auditor / Advisor / Patroller are components and delivery forms of the same product, not separate products.
> 术语以站内术语表为准：SQL 审核对应英文 SQL Review，查询重写对应 Query Rewrite，索引推荐对应 Index Recommendation；英文内容统一用 Review，不用 Audit。 / Use the site glossary for terminology: 审核 is SQL Review, 重写 is Query Rewrite, 索引推荐 is Index Recommendation; English content uses Review, never Audit.
> 引用能力范围或版本支持时以对应页面为准；标注 unknown、或 status 非 published 的内容表示尚未经产品核实，不应作为事实引用。 / Cite capability scope and version support from the corresponding page; content marked unknown, or with a status other than published, is not yet product-verified and must not be cited as fact.

# 创建审核工单

> 在创建审核工单页面填写标题、数据库、审核策略、优先级、工作空间与 SQL，提交并跟踪审核流程。

审核工单将一组 SQL、数据库类型与版本、审核策略、优先级及可选工作空间组合在一起，形成一条可跟踪、可复核的审核记录。

## 目标

创建一张将 SQL 与数据库类型、版本、审核策略、优先级及可选工作空间绑定的审核工单，形成可跟踪、可复核的记录。

## 填写工单字段

<Frame caption="创建审核工单是单表单页面，字段按顺序排列">
  <img src="https://mintcdn.com/pawsql/cdtFYB4QMM1nGHhK/images/sql-audit/create-ticket.png?fit=max&auto=format&n=cdtFYB4QMM1nGHhK&q=85&s=de4a61a24dccad459ba2a346c9813878" alt="创建审核工单表单" width="1440" height="900" data-path="images/sql-audit/create-ticket.png" />
</Frame>

创建审核工单在单个页面完成，按以下顺序填写：

<Steps>
  <Step title="标题（工单号）">
    标题默认按创建时间自动生成，例如 `TK_202609141244`。可按需改为能识别业务系统、变更内容和环境的名称。
  </Step>

  <Step title="选择数据库类型和版本">
    选择 SQL 实际运行的数据库类型与版本。类型决定方言解析和可用规则，版本决定版本相关规则是否适用。
  </Step>

  <Step title="选择审核策略">
    在下拉框选择匹配的审核策略（界面显示为“审核模板”）。策略决定启用的规则、风险级别和阈值。详见[审核策略](/user-guide/sql-audit/select-audit-policy)。
  </Step>

  <Step title="设置优先级">
    选择工单优先级（低、中、高、紧急）。优先级用于排序、处理顺序和门禁判定，与审核后计算出的风险级别相互独立。
  </Step>

  <Step title="配置工作空间（可选）">
    需要识别表、列、约束、索引或生成优化建议时，选择与目标环境一致的工作空间。详见[工作空间](/user-guide/sql-audit/configure-review-context)。
  </Step>

  <Step title="输入 SQL">
    选择输入方式（SQL 文本、SQL 文件、MyBatis XML 文件或压缩包），粘贴或上传待审核 SQL。
  </Step>

  <Step title="填写工单描述（可选）">
    说明工单的具体需求和背景，便于审核人员理解变更意图。
  </Step>

  <Step title="创建审核">
    核对字段后提交，创建审核工单。
  </Step>
</Steps>

## 数据库类型和版本

数据库类型与版本不是普通标签，它们决定：

* 使用哪种 SQL 方言解析；
* 哪些审核规则可用；
* 相同规则应使用什么参数值；
* 版本相关规则是否适用；
* 数据库专有语法是否能够识别。

不要为了让 SQL 通过解析而选择其他数据库或更高版本。

## 是否选择工作空间

| 场景             | 建议                       |
| -------------- | ------------------------ |
| 只进行基础语法和静态规范检查 | 可以不选择工作空间                |
| 需要识别表、列和数据类型   | 选择工作空间                   |
| 需要检查主键、约束和已有索引 | 选择工作空间                   |
| 需要索引推荐或更完整优化建议 | 选择工作空间                   |
| 尚未取得数据库元数据     | 先通过 DDL 创建工作空间，或接受分析范围受限 |

## SQL 输入方式

| 输入方式           | 适用场景               |
| -------------- | ------------------ |
| SQL 文本         | 单条或少量 SQL，快速审核     |
| SQL 文件         | 多语句脚本、数据库变更包       |
| MyBatis XML 文件 | MyBatis 映射文件中的 SQL |
| 压缩包            | 批量提交多个脚本文件         |

## SQL 文本要求

* 使用与目标数据库一致的语法；
* 提交完整语句，不只提交局部条件或片段；
* 多条普通 SQL 使用目标数据库及 PawSQL 当前版本支持的分隔方式；
* 保留审核所需的注释，但移除密码、令牌和敏感业务信息；
* 检查复制过程是否破坏引号、换行或特殊字符；
* 不要把异常堆栈、应用日志或 Markdown 代码围栏一起提交。

## SQL 文件要求

* 使用当前版本支持的文件类型；
* 采用产品支持且团队约定的字符编码；
* 确认文件没有被压缩、加密或加入二进制内容（使用压缩包方式时除外）；
* 检查单个文件和单次工单的大小限制；
* 文件名应能识别系统、变更和版本；
* 上传前执行病毒检查和数据脱敏。

MyBatis XML 文件与压缩包同样适用上述文件类要求；具体支持的文件格式、包结构和大小的限制以当前产品版本为准。

<Note>
  普通多语句脚本通常使用分号分隔。存储过程、匿名块和部分数据库脚本可能包含内部分号或专有批次分隔符，应以当前 PawSQL 版本对目标数据库的支持方式为准。
</Note>

## 参数化 SQL

应用 SQL 可能包含问号参数、命名参数或模板表达式。提交前：

* 使用 PawSQL 支持的参数形式；
* 保持参数数据类型和绑定顺序；
* 用脱敏值替代真实业务数据；
* 无法解析的动态模板应还原为一条代表性 SQL；
* 需要执行计划时准备具有代表性的参数组合。

## 解析失败处理

1. 确认数据库类型和版本。
2. 缩小到一条最小复现 SQL。
3. 检查引号、括号、注释和分隔符。
4. 检查变量、批次命令和存储过程语法。
5. 确认文件编码和不可见字符。
6. 记录 PawSQL 版本、工单号、行号和完整错误信息。

## 预期结果

提交后工单进入等待、执行或完成状态，显示识别出的 SQL 数量，并可跟踪审核结果。

## 提交前检查

* [ ] 工单标题（工单号）正确。
* [ ] 数据库类型与版本正确。
* [ ] 审核策略正确。
* [ ] 优先级符合实际。
* [ ] 识别出的 SQL 数量符合预期。
* [ ] 工作空间与目标环境一致，或明确未使用工作空间。
* [ ] SQL 已脱敏，语句分隔方式正确。
* [ ] 工单进入等待、执行或完成状态，没有未经说明的部分失败。

<Tip>
  提交前记录审核策略、优先级和工作空间。后续结果发生变化时，可以据此判断是 SQL、策略还是元数据发生了变化。
</Tip>

<Warning>
  审核工单用于静态检查，并不代表 SQL 已被安全执行。即使审核通过，生产脚本仍需经过测试、备份、审批和发布控制。
</Warning>

## 常见问题

| 现象        | 优先检查                    |
| --------- | ----------------------- |
| SQL 数量不正确 | 分隔符、存储过程或脚本批次语法         |
| 表或列无法识别   | 工作空间、Schema、元数据更新时间     |
| 工单创建失败    | 权限、License、配额、输入大小和服务状态 |
| 工单长时间等待   | 任务队列、并发限制和分析服务状态        |

## 延伸阅读

<CardGroup cols={2}>
  <Card title="审核策略" href="/user-guide/sql-audit/select-audit-policy" />

  <Card title="工作空间" href="/user-guide/sql-audit/configure-review-context" />

  <Card title="查看审核结果" href="/user-guide/sql-audit/read-audit-results" />

  <Card title="处理审核问题" href="/user-guide/sql-audit/resolve-findings" />
</CardGroup>
