批量获取系统预置SQL防御规则 - ListSqlJobSystemDefendRules
功能介绍
该API用于获取系统预置SQL防御规则。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限及授权项说明。
URI
GET /v1/{project_id}/sql-defend-sys-rules
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| project_id | 是 | String | 参数解释: 项目编号,用于资源隔离。获取方式请参考获取项目ID。 约束限制: 无 取值范围: 只能由英文字母和数字组成,且长度为[1-64]个字符。 默认取值: 无 |
请求参数
无
响应参数
| 参数 | 参数类型 | 描述 |
|---|---|---|
| rules | Array of SqlDefendSysRuleDto objects | 系统预置规则信息。 |
| total_count | Long | 总个数。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| rule_id | String | 参数解释: 规则ID。请参考表4的规则ID。 约束限制: 无 取值范围: 枚举值的具体含义请参考表4。
默认取值: 无 |
| category | String | 参数解释: 规则状态类型。请参考表4中的状态类别列。 约束限制: 无 取值范围: 支持以下枚举值:
默认取值: 无 |
| actions | Array of strings | 可执行的动作。 |
| engines | Array of strings | 支持的引擎。 |
| no_limit | Boolean | 规则是否有限制值。 |
| desc | String | 规则描述。 最大长度:2000 |
| param | SysRuleParam object | 系统规则配置参数。 |
| 规则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 |
请求示例
无
响应示例
{
"rules": [
{
"defaultLimit": 200000,
"rule_id": "dynamic_0001",
"category": "dynamic",
"actions": [
"hint",
"intercept"
],
"engines": [
"spark"
],
"no_limit": false,
"auto_rule": true,
"desc": "Scan files number",
"param": {
"desc": null,
"type": null,
"min": 1,
"max": 2000000,
"defaultValue": 200000
},
"engine_versions": {
"spark": "3.3.1"
}
}
],
"total_count": 1
} 状态码
| 状态码 | 描述 |
|---|---|
| 201 | 获取规则成功 |
| 400 | 请求错误。 |
| 500 | 内部服务器错误。 |
错误码
调用接口出错后,将不会返回上述结果,而是返回错误码和错误信息,更多介绍请参见错误码。