
# 获取SQL防御规则 - ShowSqlJobDefendRule
#### 功能介绍
该API用于获取单个SQL防御规则。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/DLI/doc?api=ShowSqlJobDefendRule)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限及授权项说明](https://support.huaweicloud.com/api-dli/dli_02_0375.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项 Action | 访问级别 Access Level | 资源类型（\*为必须） Resource Type (\*: required) | 条件键 Condition Key | 别名 Alias | 依赖的授权项 Dependencies |
  |:---|:---|:---|:---|:---|:---|
  | dli:sqldefendrule:get                   | Read                                            | -                                                                      | -                                              | -                                      | -                                                 |
     
  
 
#### URI
GET /v1/{project_id}/sql-defend-rules/{rule_id}
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释：** 项目编号，用于资源隔离。获取方式请参考[获取项目ID](https://support.huaweicloud.com/api-dli/dli_02_0183.html)。 **约束限制：** 无 **取值范围：** 只能由英文字母和数字组成，且长度为\[1-64\]个字符。 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| rule_id    | 是    | String | **参数解释：** 规则ID。请参考[表3]的规则ID。 **约束限制：** 无 **取值范围：** 枚举值的具体含义请参考[表3]。 - static_0001  - static_0002  - static_0003  - static_0004  - static_0005  - static_0006  - static_0007  - dynamic_0001  - dynamic_0002  - running_0002  - running_0003  - running_0004   **默认取值：** 无 |
   
#### 请求参数
无
#### 响应参数
表2响应Body参数 
| 参数           | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| rule_uuid    | String           | 规则唯一标识。 最大长度：64                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| project_id   | String           | 项目编号。 最大长度：64                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| rule_name    | String           | **参数解释：** 自定义SQL防御规则名称。 请参考数据湖探索用户指南中"[SQL防御系统规则](https://support.huaweicloud.com/usermanual-dli/dli_01_0612.html)"。 **约束限制：** 最小长度：1 最大长度：32 **取值范围：** 无 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| rule_id      | String           | **参数解释：** 规则ID。请参考[表3]的规则ID。 **约束限制：** 无 **取值范围：** 枚举值的具体含义请参考[表3]。 - static_0001  - static_0002  - static_0003  - static_0004  - static_0005  - static_0006  - static_0007  - dynamic_0001  - dynamic_0002  - running_0002  - running_0003  - running_0004   **默认取值：** 无 |
| category     | String           | **参数解释：** 规则状态类型。请参考[表3](https://support.huaweicloud.com/api-dli/dli_02_0380.html#dli_02_0380__table1626674755019)中的状态类别列。 **约束限制：** 无 **取值范围：** 支持以下枚举值： - static：静态规则  - dynamic：动态规则  - running：熔断规则   **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| engine_rules | Object           | **参数解释：** 规则支持的动作。请参考[表3](https://support.huaweicloud.com/api-dli/dli_02_0380.html#dli_02_0380__table1626674755019)中的支持的动作。 **约束限制：** 无 **取值范围：** 支持以下枚举值： - hint：提示  - intercept：拦截  - fuse：熔断   **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| queue_names  | Array of strings | 队列名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| desc         | String           | 用户规则描述。 最大长度：2000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| sys_desc     | String           | 系统规则描述。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| create_time  | Long             | 规则创建时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| update_time  | Long             | 规则更新时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   
 表3DLI支持的系统防御规则 
| 规则ID         | 规则名称                        | 说明                                           | 类别      | 适用引擎  | 支持的动作                                            | 取值说明                                                                                                            | 系统默认创建规则 | SQL语句示例                                                                                                                                                                                                                                                                                     | 支持的引擎版本                                                           |
|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|
| dynamic_0001 | Scan files number           | 扫描文件数的限制。                                    | dynamic | spark | 提示 拦截 | 取值范围：1-2000000 默认值：200000                                            | 是        | NA                                                                                                                                                                                                                                                                                          | Spark 3.3.1                                                       |
| dynamic_0002 | Scan partitions number      | 对单个表操作（select，delete，update，alter）涉及的分区数超限制。 | dynamic | spark | 提示 拦截  | 取值范围：1-500000 默认值：5000                                                | 是        | select \* from 分区表                                                                                                                                                                                                                                                                          | Spark 3.3.1                                                       |
| running_0002 | Memory used(MB)             | SQL的占用内存峰值超绝对值限制。                            | running | spark | 熔断                                               | 取值范围：1-8388608                                                                                                  | 否        | NA                                                                                                                                                                                                                                                                                          | Spark 3.3.1                                                       |
| running_0003 | Run time(S)                 | SQL已经运行的时长限制。                                | running | spark | 熔断                                               | 单位：秒 取值范围：1-43200                                                       | 否        | NA                                                                                                                                                                                                                                                                                          | Spark 3.3.1                                                       |
| running_0004 | Scan data(GB)               | 扫描数据量的限制。                                    | running | spark | 熔断                                               | 单位：GB 取值范围：1-10240                                                   | 否        | NA                                                                                                                                                                                                                                                                                          | Spark 3.3.1                                                       |
| running_0005 | Shuffle data(GB)            | Shuffle数据量的限制。                               | running | spark | 熔断                                               | 单位：GB 取值范围：1-10240 默认值：2048 | 是        | NA                                                                                                                                                                                                                                                                                          | Spark 3.3.1 Spark 2.4.5 |
| static_0001  | Count(distinct) occurrences | SQL中count(distinct)出现次数限制。                   | static  | spark | 提示 拦截 | 取值范围：1-100 默认值：10                                                    | 是        | SELECT COUNT(DISTINCT deviceId), COUNT(DISTINCT collDeviceId) FROM table GROUP BY deviceName, collDeviceName, collCurrentVersion;                                                                         | Spark 3.3.1                                                       |
| static_0002  | Not in\<Subquery\>          | SQL中是否使用了not in \<subquery\>语句。              | static  | spark | 提示 拦截  | 取值范围：是/否 默认值：是                                                      | 是        | SELECT \* FROM Orders o WHERE Orders.Order_ID not in (Select Order_ID FROM HeldOrders h where h.order_id = o.order_id); | Spark 3.3.1                                                       |
| static_0003  | Join occurrences            | SQL中的join次数的限制。                              | static  | spark | 提示 拦截   | 取值范围：1-50                                                                                                       | 否        | SELECT name, text FROM table_1 JOIN table_2 ON table_1.Id = table_2.Id                                                                                                                                                                                                                      | Spark 3.3.1                                                       |
| static_0004  | Union occurrences           | SQL中的union all次数的限制。                         | static  | spark | 提示 拦截 | 取值范围：1-100                                                                                                      | 否        | select \* from tables t1 union all select \* from tables t2 union all select \* from tables t3                                                                                                         | Spark 3.3.1                                                       |
| static_0005  | Subquery nesting layers     | 子查询嵌套层数的限制。                                  | static  | spark | 提示 拦截   | 取值范围：1-20                                                                                                       | 否        | select \* from ( with temp1 as (select \* from tables) select \* from temp1);                                                                                                                                  | Spark 3.3.1                                                       |
| static_0006  | Sql size(KB)                | SQL文件大小的限制。                                  | static  | spark | 提示 拦截    | 单位：KB 取值范围：1-1024                                                      | 否        | NA                                                                                                                                                                                                                                                                                          | Spark 3.3.1                                                       |
| static_0007  | Cartesian product           | 多表关联时笛卡尔积的限制                                 | static  | spark | 提示 拦截  | 取值范围：0-1                                                                                                        | 否        | select \* from A,B;                                                                                                                                                                                                                                                                         | Spark 3.3.1                                                       |
   
#### 请求示例
无
#### 响应示例
```
{
    "rule_uuid": "168d21df-904c-402a-887c-0cee41dd55cc",
    "project_id": "330e068af1334c9782f4226acc00a2e2",
    "rule_name": "sql_running_0002_system",
    "rule_id": "running_0002",
    "category": "running",
    "engine_rules": {
        "fuse": 2048
    },
    "queue_names": [
        "ci_sql"
    ],
    "desc": "system default rule",
    "create_time": 1767924865715,
    "update_time": 1767924865715,
    "sys_desc": "Memory used(MB)"
}
```
#### 状态码
| 状态码 | 描述       |
|:---|:---|
| 201 | 获取规则成功   |
| 400 | 请求错误。    |
| 500 | 内部服务器错误。 |
   
#### 错误码
调用接口出错后，将不会返回上述结果，而是返回错误码和错误信息，更多介绍请参见[错误码](https://support.huaweicloud.com/api-dli/dli_02_0056.html)。
