
# 获取单个系统预置SQL防御规则 - ShowSqlJobSystemDefendRule
#### 功能介绍
该API用于获取系统预置SQL防御规则。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/DLI/doc?api=ShowSqlJobSystemDefendRule)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限及授权项说明](https://support.huaweicloud.com/api-dli/dli_02_0375.html)。
#### URI
GET /v1/{project_id}/sql-defend-sys-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_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]中的状态类别列。 **约束限制：** 无 **取值范围：** 支持以下枚举值： - static：静态规则  - dynamic：动态规则  - running：熔断规则   **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| actions  | Array of strings                                                                        | 可执行的动作。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| engines  | Array of strings                                                                        | 支持的引擎。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| no_limit | Boolean                                                                                 | 规则是否有限制值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| desc     | String                                                                                  | 规则描述。 最大长度：2000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| param    | [SysRuleParam] object | 系统规则配置参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
 表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                                                       |
   
 表4SysRuleParam 
| 参数           | 参数类型   | 描述                                            |
|:---|:---|:---|
| max          | Long   | 阈值上限。                                         |
| min          | Long   | 阈值下限。                                         |
| defaultValue | Long   | 阈值默认值。                                        |
| desc         | String | 规则描述。 最大长度：2000 |
   
#### 请求示例
无
#### 响应示例
```
{
    "rule_id": "dynamic_0001",
    "category": "dynamic",
    "actions": [
        "hint"
    ],
    "engines": [
        "spark"
    ],
    "no_limit": false,
    "desc": "Scan files number",
    "param": {
        "min": 1,
        "max": 2000000,
        "defaultValue": 200000,
        "desc": "扫描文件数的限制"
    }
}
```
#### 状态码
| 状态码 | 描述       |
|:---|:---|
| 201 | 获取规则成功   |
| 400 | 请求错误。    |
| 500 | 内部服务器错误。 |
   
#### 错误码
调用接口出错后，将不会返回上述结果，而是返回错误码和错误信息，更多介绍请参见[错误码](https://support.huaweicloud.com/api-dli/dli_02_0056.html)。
