批量获取SQL防御规则 - ListSqlJobDefendRules
功能介绍
该API用于批量获取SQL防御规则。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权,具体权限要求请参见权限及授权项说明。
- 如果使用身份策略授权,需具备如下身份策略权限。
授权项
Action
访问级别
Access Level
资源类型(*为必须)
Resource Type (*: required)
条件键
Condition Key
别名
Alias
依赖的授权项
Dependencies
dli:sqldefendrule:list
List
-
-
-
-
URI
GET /v1/{project_id}/sql-defend-rules
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
project_id |
是 |
String |
参数解释: 项目编号,用于资源隔离。获取方式请参考获取项目ID。 约束限制: 无 取值范围: 只能由英文字母和数字组成,且长度为[1-64]个字符。 默认取值: 无 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
queue_name |
否 |
String |
参数解释: 队列名称 约束限制: 无 取值范围: 无 默认取值: 无 |
|
rule_name |
否 |
String |
参数解释: 自定义的SQL防御规则名称。 请参考数据湖探索用户指南中“SQL防御系统规则”。 约束限制: 最小长度:1 最大长度:32 取值范围: 无 默认取值: 无 |
|
offset |
否 |
Integer |
分页偏移量。 |
|
limit |
否 |
Integer |
分页个数。 |
请求参数
无
响应参数
状态码: 201
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
rules |
Array of SqlDefendRuleDto objects |
用户自定义规则信息。 |
|
total_count |
Integer |
总个数。 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
rule_uuid |
String |
规则唯一标识。 最大长度:64 |
|
project_id |
String |
项目编号,用于资源隔离。 最大长度:64 |
|
rule_name |
String |
规则名称。 最小长度:1 最大长度:32 |
|
rule_id |
String |
参数解释: 规则ID。请参考表5的规则ID。 约束限制: 无 取值范围: 枚举值的具体含义请参考表3。
默认取值: 无 |
|
category |
String |
参数解释: 规则状态类型。请参考表5中的状态类别列。 约束限制: 无 取值范围: 支持以下枚举值:
默认取值: 无 |
|
engine_rules |
Object |
参数解释: 规则支持的动作。请参考表5中的支持的动作。 约束限制: 无 取值范围: 支持以下枚举值:
默认取值: 无 |
|
queue_names |
Array of strings |
参数解释: 队列名称 约束限制: 无 取值范围: 无 默认取值: 无 |
|
desc |
String |
用户规则描述。 最大长度:2000 |
|
sys_desc |
String |
系统规则描述。 |
|
create_time |
Long |
规则创建时间。 |
|
update_time |
Long |
规则更新时间。 |
|
规则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 |
状态码: 400
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
error_code |
String |
错误码。 |
|
error_msg |
String |
错误描述信息。 |
请求示例
无
响应示例
{
"rules": [
{
"rule_uuid": "393e3f6a-78f3-450e-87d9-d97cf1768234",
"project_id": "330e068af1334c9782f4226acc00a2e2",
"rule_name": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"rule_id": "dynamic_0001",
"category": "dynamic",
"engine_rules": {
"hint": 11,
"intercept": 22
},
"queue_names": [
"auto_test"
],
"desc": "asfasdfsdadf",
"create_time": 1757141497293,
"update_time": 1757141497293,
"sys_desc": "Scan files number"
}
],
"total_count": 2
}
状态码
|
状态码 |
描述 |
|---|---|
|
201 |
获取规则成功 |
|
400 |
请求错误。 |
|
500 |
内部服务器错误。 |
错误码
调用接口出错后,将不会返回上述结果,而是返回错误码和错误信息,更多介绍请参见错误码。