You need to enable JavaScript to run this app.
导航
安全规则管理
最近更新时间:2024.09.27 10:40:52首次发布时间:2023.10.16 11:21:21

本文介绍如何在数据库工作台 DBW 控制台管理安全规则。

背景信息

安全管控是为了保护数据库系统中的数据和资源而制定的规则和措施。该功能可以帮助您在 DBW 实现精细化管控数据库实例,例如免密登录实例、工单管理、安全规则管理等。更多信息,请参见安全规则集管理

前提条件

注意事项

  • 只有在数据交互台的 SQL 窗口或通过工单执行的 SQL 语句才会被拦截生效。

  • 安全规则集内开启的安全规则请勿出现冲突的情况,否则您的实例绑定的安全规则将失效。

  • 系统默认提供一个安全规则集即名称为 mysql default。默认的安全规则集和新建的安全规则集默认包含的安全规则,请参见参考文档

  • 一个基础规则可以由多个子规则组成,多个子规则按照顺序执行。

  • 系统规则不支持删除和修改仅支持修改和关闭;您自定义的安全规则在删除后不支持恢复,需谨慎操作。

创建安全规则

  1. 登录 DBW 控制台

  2. 在顶部菜单栏,选择地域。

  3. 在左侧导航栏,选择数据管理 > 安全规则

  4. 安全规则集页面,单击目标安全规则集操作列的查看

  5. 在目标安全规则集页面,单击创建规则

  6. 创建安全规则控制面板,配置以下参数信息。

    参数说明
    规则名称自定义安全规则名称。安全规则名称的长度不能超过 128 个字符,且不能为空。
    生效场景从下拉列表中选择安全规则的生效场景,支持选择数据交互台工单管理

    基础规则

    一个基础规则可以由多个子规则组成,多个子规则按照顺序执行。基础规则的具体配置如下:

    • 您可以根据因子固定值-字符固定值-数值固定值-布尔设置安全规则。

    • 在满足基础规则时,您可以为每个子规则设置是否允许该 SQL 类型在数据交互台执行或生成工单执行,生效场景不同,该设置也不同,具体如下:

      • 生效场景选择数据交互台时,支持选择禁止该 SQL 类型数据交互台执行允许该 SQL 类型数据交互台执行禁止该 SQL 类型数据交互台执行,调转工单执行

      • 生效场景选择工单管理时,支持选择禁止该 SQL 类型生成工单执行允许该 SQL 类型生成工单执行

    说明

    • 您可以添加无数个子规则。

    • 每个子规则最多可包含三个条件层级。

    默认规则

    按需选择是否开启默认规则。开启后在没有命中基础规则包含的所有子规则时,执行默认规则。生效场景不同,该设置也不同,具体如下:

    • 生效场景选择数据交互台时,支持选择禁止该 SQL 类型数据交互台执行允许该 SQL 类型数据交互台执行、禁止该 SQL 类型数据交互台执行,调转工单执行

    • 生效场景选择工单管理时,支持选择禁止该 SQL 类型生成工单执行允许该 SQL 类型生成工单执行

    规则预览在该区域展示您设置的规则生成的 SQL 语句,您无需修改。

启用或关闭安全规则

您可以根据需求启用或关闭安全规则集内的规则。

  1. 登录 DBW 控制台

  2. 在顶部菜单栏,选择地域。

  3. 在左侧导航栏,选择数据管理 > 安全规则

  4. 安全规则集页面,单击目标安全规则集操作列的查看

  5. 在目标安全规则集页面,单击目标规则是否启用列下的开关。

  6. 确定开启吗?确定关闭吗? 对话框,单击确定

编辑安全规则

系统规则不支持修改,仅支持修改您自定义的安全规则。

  1. 登录 DBW 控制台

  2. 在顶部菜单栏,选择地域。

  3. 在左侧导航栏,选择数据管理 > 安全规则

  4. 安全规则集页面,单击目标安全规则集操作列的查看

  5. 在目标安全规则集页面,单击目标规则操作列下的编辑

  6. 编辑配置项对话框,修改安全规则的规则。

删除安全规则

系统规则不支持删除,您自定义的安全规则在删除后不支持恢复,需谨慎操作。

  1. 登录 DBW 控制台

  2. 在顶部菜单栏,选择地域。

  3. 在左侧导航栏,选择数据管理 > 安全规则

  4. 安全规则集页面,单击目标安全规则集操作列的查看

  5. 在目标安全规则集页面,单击目标规则操作列的删除

  6. 确认删除对话框,单击确定

参考文档

安全规则集中默认的安全规则(即系统规则)如下表所示。

说明

只有在数据交互台的 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 库表权限校验。启用
数据交互台仅支持特定类型 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 条件。禁用
数据交互台限制 SELECT 语句 LIMITOFFSET 大小。禁用2000
数据交互台SELECT 时不建议 GROUP BY 常量。禁用
数据交互台限制 SELECT 语句多表关联的数量。禁用3
数据交互台SELECT 语句不建议使用 *禁用
数据交互台SELECT 语句不建议对不同的表 GROUP BYORDER 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 语句。禁用
  • 工单管理

  • 数据交互台

表要有主键。

禁用

  • 工单管理

  • 数据交互台

表要有备注。

禁用

  • 工单管理

  • 数据交互台

表不能使用外键。

禁用

  • 工单管理

  • 数据交互台

限制表名大小写。

禁用

  • Lower

  • upper

  • 工单管理

  • 数据交互台

限制表存储引擎。

说明

仅支持在 CreateTable 时适用该规则。

禁用

InnoDB

  • 工单管理

  • 数据交互台

限制表使用分区设置。

说明

CreateTableAlterTable 时不限制该规则。

禁用

  • 工单管理

  • 数据交互台

表需要包含某些列。

说明

仅支持在 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

  • 工单管理

  • 数据交互台

限制字段名大小写。

禁用

  • lower

  • upper

  • 工单管理

  • 数据交互台

不能设置列的字符集。

禁用

  • 工单管理

  • 数据交互台

列要有注释。

禁用

  • 工单管理

  • 数据交互台

限制 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 时适用该规则。

禁用

相关操作

开启安全管控:在开启实例的安全管控时,设置安全规则集。