数据库工作台
参数 | 说明 |
参数 | 说明 |
规则名称 | 自定义安全规则名称。安全规则名称的长度不能超过 128 个字符,且不能为空。 |
生效场景 | 从下拉列表中选择安全规则的生效场景,支持选择数据交互台、工单管理和 SQL 审核。 |
基础规则 | 一个基础规则可以由多个子规则组成,多个子规则按照顺序执行。基础规则的具体配置如下:
说明
|
默认规则 | 按需选择是否开启默认规则。开启后在没有命中基础规则包含的所有子规则时,执行默认规则。生效场景不同,该设置也不同,具体如下:
|
规则预览 | 在该区域展示您设置的规则生成的 SQL 语句,您无需修改。 |
安全规则名称 | 生效场景 | 是否默认启用 | 默认值 |
安全规则名称 | 生效场景 | 是否默认启用 | 默认值 |
禁止 CREATE_TABLE 在数据库交互台直接执行,请提交工单执行。 | 数据交互台 | 启用 | 无 |
禁止 DROP_TABLE 在数据库交互台直接执行,请提交工单执行。 | 数据交互台 | 启用 | 无 |
禁止 TRUNCATE 在数据库交互台直接执行,请提交 DDL 工单执行。 | 数据交互台 | 启用 | 无 |
禁止 INSERT 在数据库交互台直接执行,请提交 DML 工单执行。 | 数据交互台 | 启用 | 无 |
禁止 UPDATE 在 SQL 控制台直接执行,请提交 DML 工单执行。 | 数据交互台 | 启用 | 无 |
禁止 DELETE 在 SQL 控制台直接执行,请提交 DML 工单执行。 | 数据交互台 | 启用 | 无 |
禁止 ALTER_TABLE 在数据库交互台直接执行,请提交 DDL 工单执行。 | 数据交互台 | 启用 | 无 |
禁止 KILL 在数据库交互台直接执行,请提交 DML 工单执行。 | 数据交互台 | 启用 | 无 |
禁止存储过程在数据库交互台直接创建,请提交 DDL 工单执行。 | 数据交互台 | 启用 | 无 |
禁止无法识别 SQL 解析异常继续执行【继续执行会导致安全规则失效】。 | 数据交互台 | 启用 | 无 |
禁止无法解析权限的 SQL 继续执行【继续执行会导致安全规则失效】。 | 数据交互台 | 启用 | 无 |
所有用户都需要检查权限 | 数据交互台 | 启用 | 无 |
仅支持特定类型 SQL 执行。 | 数据交互台 | 未启用 | SHOW TABLES、SHOW CREATE TABLE、EXPLAIN、SELECT、DBATMAN HELP、DBATMAN SHOW |
仅支持 select_type 在范围内的 SQL 执行。 | 数据交互台 | 未启用 | SIMPLE、PRIMARY、DERIVED、UNION、UNION RESULT、SUBQUERY、DEPENDENT SUBQUERY、MATERIALIZED、DEPENDENT UNION |
仅支持 index_type 在范围内 SQL 执行。 | 数据交互台 | 未启用 | index、range、ref、eq_ref、const、system、NULL |
仅支持 SQL 扫描行数小于 10 万行的语句执行,请优化 SQL 语句。 | 数据交互台 | 未启用 | 100000 |
SELECT 语句建议指定 where 条件。 | 数据交互台 | 未启用 | 无 |
表要有主键。 |
| 未启用 | 无 |
表要有备注。 |
| 未启用 | 无 |
表不能使用外键。 |
| 未启用 | 无 |
限制表名大小写。 |
| 未启用 |
|
限制表存储引擎。 说明 仅支持在 CreateTable 时适用该规则。 |
| 未启用 | InnoDB |
限制表使用分区设置。 说明 在 CreateTable 和 AlterTable 时不限制该规则。 |
| 未启用 | 无 |
表需要包含某些列。 说明 仅支持在 CreateTable 时适用该规则。 |
| 未启用 | 无 |
限制表字符集。 说明 仅支持在 CreateTable 时适用该规则。 |
| 未启用 | utf8mb4 |
限制表校验规则。 说明 仅支持在 CreateTable 时适用该规则。 |
| 未启用 | utf8_general_ci、 utf8_bin、 utf8mb4_general_ci、 utf8mb4_bin |
表名不能是关键字。 |
| 未启用 | analyze、add、all、alter、and、before、between、bigint、binary、blob、both、by、call、cascade、case、change、char、character、check、collate、column、condition、as、asc、asensitive、connection、constraint、continue、convert、create、cross、current_date、current_time、current_timestamp、current_user、cursor、database、databases、day_hour、day_microsecond、day_minute、day_second、dec、decimal、declare、default、delayed、delete、desc、describe、deterministic、distinct、distinctrow、div、double、drop、dual、each、else、exit、explain、false、fetch、float、float4、float8、elseif、enclosed、escaped、exists、for、force、foreign、from、fulltext、goto、grant、group、having、high_priority、hour_microsecond、hour_minute、hour_second、if、ignore、in、index、infile、inner、inout、insensitive、insert、int、int1、int2、int3、int4、int8、integer、interval、into、is、iterate、join、key、keys、kill、label、leading、leave、left、like、limit、linear、lines、low_priority、localtime、localtimestamp、lock、long、longblob、longtext、loop、load、matchediumblob、mediumint、mediumtext、middleint、minute_microsecond、minute_second、mod、modifies、no_write_to_binlog、null、numeric、on、optimize、option、optionally、natural、not、or、order、ut、uter、outfile、precision、primary、procedure、urge、raid0、ange、read、reads、eal、references、regexp、release、ename、epeat、replace、require、restrict、return、evoke、ight、rlike、schema、schemas、second_microsecond、select、sensitive、separator、set、show、smallint、spatial、specific、sql、sqlexception、sqlstate、sqlwarning、sql_big_result、sql_calc_found_rows、sql_small_result、ssl、starting、traight_join、able、terminated、then、tinyblob、inyint、tinytext、o、trailing、trigger、true、ndo、union、unique、nlock、unsigned、pdate、usage、use、using、utc_date、tc_time、tc_timestamp、values、varbinary、x509、xor、year_month、zerofill、varchar、varcharacter、varying、when、where、while、with、write |
限制表索引的数量。 说明 仅支持在 CreateTable 时适用该规则。 |
| 未启用 | 7 |
限制表字段的数量。 说明 仅支持在 CreateTable 时适用该规则。 |
| 未启用 | 128 |
限制建表自增初始值。 |
| 未启用 | 1 |
限制主键列必须自增。 说明 仅支持在 CreateTable 时适用该规则。 |
| 未启用 | 无 |
字段名不能是关键字。 |
| 未启用 | analyze、add、all、alter、and、before、between、bigint、binary、blob、both、by、call、cascade、case、change、char、character、check、collate、column、condition、as、asc、asensitive、connection、constraint、continue、convert、create、cross、current_date、current_time、current_timestamp、current_user、cursor、database、databases、day_hour、day_microsecond、day_minute、day_second、dec、decimal、declare、default、delayed、delete、desc、describe、deterministic、distinct、distinctrow、div、double、drop、dual、each、else、exit、explain、false、fetch、float、float4、float8、elseif、enclosed、escaped、exists、for、force、foreign、from、fulltext、goto、grant、group、having、high_priority、hour_microsecond、hour_minute、hour_second、if、ignore、in、index、infile、inner、inout、insensitive、insert、int、int1、int2、int3、int4、int8、integer、interval、into、is、iterate、join、key、keys、kill、label、leading、leave、left、like、limit、linear、lines、low_priority、localtime、localtimestamp、lock、long、longblob、longtext、loop、load、match、mediumblob、mediumint、mediumtext、middleint、minute_microsecond、minute_second、mod、modifies、no_write_to_binlog、null、numeric、on、optimize、option、optionally、natural、not、or、order、out、outer、outfile、precision、primary、procedure、purge、raid0、range、read、reads、real、references、regexp、release、rename、repeat、replace、require、restrict、return、revoke、right、rlike、schema、schemas、second_microsecond、select、sensitive、separator、set、show、smallint、spatial、specific、sql、sqlexception、sqlstate、sqlwarning、sql_big_result、sql_calc_found_rows、sql_small_result、ssl、starting、straight_join、table、terminated、then、tinyblob、tinyint、tinytext、to、trailing、trigger、true、undo、union、unique、unlock、unsigned、update、usage、use、using、utc_date、utc_time、utc_timestamp、values、varbinary、x509、xor、year_month、zerofill、varchar、varcharacter、varying、when、where、while、with、write |
限制字段名大小写。 |
| 未启用 |
|
不能设置列的字符集。 |
| 未启用 | 无 |
列要有注释。 |
| 未启用 | 无 |
限制 CHAR 类型字段长度。 |
| 未启用 | 256 |
限制 VARCHAR 类型字段长度。 |
| 未启用 | 2560 |
限制列都不可空(not null)。 |
| 未启用 | 无 |
限制自增列名字为 ID。 |
| 未启用 | 无 |
限制自增列为无符号。 |
| 未启用 | 无 |
不能使用 float/double 类型。 |
| 未启用 | 无 |
每个列都要有默认值。 |
| 未启用 | 无 |
不能设置列的校验集。 |
| 未启用 | 无 |
不能使用 ENUM 类型(建议用 tinyint/char 代替)。 |
| 未启用 | 无 |
字段未启用 Zerofill 属性。 |
| 未启用 | 无 |
索引需要设置名字。 |
| 未启用 | 无 |
限制 Unique 索引名格式。 |
| 未启用 | uk_\w+ |
限制普通索引名格式。 |
| 未启用 | idx_\w+ |
限制单个索引包含列的个数。 |
| 未启用 | 5 |
限制主键包含列的个数。 说明 仅支持在 CreateTable 时适用该规则。 |
| 未启用 | 2 |
限制主键列类型。 |
| 未启用 | int、bigint |
限制列不能使用部分数据类型。 |
| 未启用 | 无 |
索引中的字段要求设置为 not n``ull。 说明 仅支持在 CreateTable 时适用该规则。 |
| 未启用 | 无 |
安全规则名称 | 是否默认启用 | 级别 | 默认值 |
安全规则名称 | 是否默认启用 | 级别 | 默认值 |
SQL 语法解析异常,建议检查 SQL 语句是否合法。 | 启用 |
| 无 |
SELECT 语句建议指定 WHERE 条件。 | 未启用 |
| 无 |
限制 UPDATE/DELETE 语句多表关联的数量 | 未启用 |
| 5 |
UPDATE/DELETE 语句检测多表关联语法是否完整(JOIN 遗漏 ON 子句)。 | 未启用 |
| 无 |
UPDATE/DELETE 语句建议指定 WHERE 条件。 | 未启用 |
| 无 |
INSERT 语句字段名不能重复。 | 未启用 |
| 无 |
INSERT 语句字段列表和值列表要匹配 | 未启用 |
| 无 |
INSERT 语句建议指定 INSERT 字段列表。 | 未启用 |
| 无 |
INSERT 语句不能为 NOT NULL 列插入 NULL 值。 | 未启用 |
| 无 |
INSERT 语句不建议使用 SYSDATE() 函数。 | 未启用 |
| 无 |
限制 INSERT 语句一条 INSERT VALUES 的总行数。 | 未启用 |
| 1000 |
INSERT 语句检测 INSERT 的表/字段是否存在。 | 未启用 |
| 无 |
UPDATE 多表时检测 SET 的列是否指定表前缀。 | 未启用 |
| 无 |
UPDATE 语句不建议更新表上的“创建时间”列。 | 未启用 |
|
|
UPDATE 语句建议更新表上的“修改时间”列。 | 未启用 |
|
|
UPDATE 语句检测 SET 多个列之间的分隔符( AND 非法)。 | 未启用 |
| 无 |
UPDATE/DELETE 语句检测 WHERE 条件是否包含子查询。 | 未启用 |
| 无 |
限制 WHERE 条件中 IN 子句包含元素个数。 | 未启用 |
| 无 |
UPDATE 语句检测是否更新了主键。 | 未启用 |
| 无 |
UPDATE 语句检测 UPDATE 的表/字段是否存在。 | 未启用 |
| 无 |
UPDATE 语句检测是否更新了唯一键。 | 未启用 |
| 无 |
限制 SELECT 语句 LIMIT 的 OFFSET 大小。 | 未启用 |
| 2000 |
SELECT 时不建议 GROUP BY 常量。 | 未启用 |
| 无 |
限制 SELECT 语句多表关联的数量。 | 未启用 |
| 3 |
SELECT 语句不建议使用 *。 | 未启用 |
| 无 |
SELECT 语句不建议对不同的表 GROUP BY 或 ORDER BY。 | 未启用 |
| 无 |
SELECT 语句不建议对常量进行 ORDER BY。 | 未启用 |
| 无 |
SELECT 语句不建议 ORDER BY 多个字段使用不同方向排序。 | 未启用 |
| 无 |
SELECT 语句不建议 GROUP BY 表达式或函数。 | 未启用 |
| 无 |
SELECT 语句不建议 ORDER BY 表达式或函数。 | 未启用 |
| 无 |
SELECT 语句不建议使用 ORDER BY RAND()。 | 未启用 |
| 无 |
SELECT 语句不建议使用 HAVING 子句。 | 未启用 |
| 无 |
SELECT 语句不建议使用 UNION。 | 未启用 |
| 无 |
WHERE 条件中不建议使用前通配符查找。 | 未启用 |
| 无 |
WHERE 条件中不建议使用反向查询(NOT IN / NOT LIKE)。 | 未启用 |
| 无 |
WHERE 条件中检测是否通过 OR 操作符连接过滤条件。 | 未启用 |
| 无 |
WHERE 条件中检测没有通配符的 LIKE 语句。 | 未启用 |
| 无 |