更新时间:2024-04-03 GMT+08:00
分享

SQL防御系统规则

DLI支持的系统防御规则如表1

系统默认创建的规则是指在队列创建时,DLI自动为您创建的SQL防御规则,该规则与队列绑定,且不支持删除。

以下规则为系统默认创建的规则:Scan files number、Scan partitions number、Count(distinct) occurrences、Not in<Subquery>

同一个队列,同一个动作的防御规则仅支持创建一条。

系统默认创建的规则会分别创建每个支持动作的规则。例如:创建队列时,会分别创建“提示”和“拦截”动作的Scan files number规则。

表1 DLI支持的系统防御规则

规则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;

分享:

    相关文档

    相关产品