SQL防御系统规则
DLI支持的系统防御规则如表1,
系统默认创建的规则是指在队列创建时,DLI自动为您创建的SQL防御规则,该规则与队列绑定,且不支持删除。
以下规则为系统默认创建的规则:Scan files number、Scan partitions number、Count(distinct) occurrences、Not in<Subquery>
同一个队列,同一个动作的防御规则仅支持创建一条。
系统默认创建的规则会分别创建每个支持动作的规则。例如:创建队列时,会分别创建“提示”和“拦截”动作的Scan files number规则。
规则ID |
规则名称 |
说明 |
类别 |
适用引擎 |
支持的动作 |
取值说明 |
系统默认创建规则 |
SQL语句示例 |
---|---|---|---|---|---|---|---|---|
dynamic_0001 |
Scan files number |
扫描文件数的限制。 |
dynamic |
spark trino |
提示 拦截 |
取值范围:1-2000000 默认值:200000 |
是 |
NA |
dynamic_0002 |
Scan partitions number |
对单个表操作(select,delete,update,alter)涉及的分区数超限制。 |
dynamic |
spark |
提示 拦截 |
取值范围:1-500000 默认值:5000 |
是 |
DELETE FROM table_name WHERE column_name = value |
running_0002 |
Memory used(MB) |
SQL的占用内存峰值超绝对值限制。 |
running |
spark |
熔断 |
取值范围:1-8388608 |
否 |
NA |
running_0003 |
Run time(S) |
SQL已经运行的时长限制。 |
running |
spark |
熔断 |
单位:秒 取值范围:1-43200 |
否 |
NA |
running_0004 |
Scan data(GB) |
扫描数据量的限制。 |
running |
spark |
熔断 |
单位:GB 取值范围:1-10240 |
否 |
NA |
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; |
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); |
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 |
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 |
static_0005 |
Subquery nesting layers |
子查询嵌套层数的限制。 |
static |
spark |
提示 拦截 |
取值范围:1-20 |
否 |
select * from ( with temp1 as (select * from tables) select * from temp1); |
static_0006 |
Sql size(KB) |
SQL文件大小的限制。 |
static |
spark |
提示 拦截 |
单位:KB 取值范围:1-1024 |
否 |
NA |
static_0007 |
Cartesian product |
多表关联时笛卡尔积的限制 |
static |
spark |
提示 拦截 |
取值范围:0-1 |
否 |
select * from A,B; |