Skip to main content
当一个项目包含开发、线上等多个环境,且不同环境使用不同数据库时,可以分别创建 SQL 日志查询任务,并通过任务查询接口分页获取 SQL 记录。返回结果中的 env 字段用于标识数据所属环境。

功能说明

SQL 日志导出包含以下两个接口:

接入前提

本文描述 SQL 日志任务的业务协议,不公开内部网关地址和认证凭据。接入方需从正式开放 API 平台请求ACCESS_TOKEN。若实际开放接口使用其他认证协议,应以开放 API 平台的认证文档为准,不应直接复用内部控制台的 Cookie。

请求约定

两个接口均使用 POST 方法,请求内容类型为 application/x-www-form-urlencoded。业务参数以 JSON 字符串形式写入 params 表单字段,返回的数据包含数据库的所有基础数据(数据,auth,文件元数据,定时任务元数据),未提及的不涉及。

创建 SQL 日志任务

调用 CreateSqlLogTask,为指定项目和数据库实例创建 SQL 日志查询任务。

请求示例

执行以下命令,创建 SQL 日志查询任务。请将命令中的占位符替换为实际值。

业务请求参数

以下参数均位于 params JSON 对象中。

响应示例

响应参数

查询 SQL 日志任务

调用 DescribeSqlLogTask,查询任务状态并分页获取 SQL 记录。

请求示例

执行以下命令,查询 SQL 日志任务。请使用创建任务时对应的 InstanceIdprojectUrlId 和返回的 TaskId

业务请求参数

以下参数均位于 params JSON 对象中。

响应示例

以下示例表示任务已完成,并返回一条脱敏后的 SQL 记录。

响应参数

Queries 数组中每条 SQL 记录包含以下字段:

分页与任务状态处理

调用 DescribeSqlLogTask 后,应先判断 datastatus Expiretrue 时,任务结果已过期,原任务通常无法继续提供完整的分页结果。调用方可重新调用 CreateSqlLogTask 创建任务;具体处理方式以服务端约定为准。

成功判断与问题排查

成功响应同时包含 HTTP 状态、外层业务状态和内层业务状态。调用方建议同时检查以下字段:
  • httpStatusCode200
  • code200
  • successResponsetrue
  • data.code200
  • data.successtrue
如果任一字段表示失败,应停止解析业务数据,并记录响应中实际存在的追踪标识、任务标识和错误消息。当前材料未提供错误响应样例和完整错误码,因此本文不定义错误码枚举;发布正式 API 参考前,应补充参数错误、无权限、任务不存在、任务过期、限流和服务端错误等异常契约。

安全要求

  • 不得在请求示例、应用日志、代码仓库或工单中记录真实 Cookie、Token、账号标识和网关地址。
  • sec_token、Cookie 等认证信息应通过安全配置或密钥管理服务注入,不得硬编码。
  • sqlTexthostAddressdBNameaccountName、projectUrlId 可能包含敏感信息。导出、传输和存储 SQL 日志时,应实施最小权限控制和必要的脱敏处理。