You need to enable JavaScript to run this app.
导航
安全规则管理
最近更新时间:2024.09.27 10:43:40首次发布时间:2024.08.08 20:38:20

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

背景信息

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

前提条件

  • 您的账号已是 DBW 的管理员,如果不是需添加为 DBW 的管理员。详细操作,请参见添加用户

  • 您已创建安全规则集。详细操作,请参见创建安全规则集

注意事项

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

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

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

  • 系统规则不支持删除和修改仅支持修改和关闭。

查看安全规则

  1. 登录 DBW 控制台

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

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

  4. 安全规则集页面的顶部菜单栏,选择数据库类型云数据库 PostgreSQL 版

  5. 单击目标安全规则集操作列的查看

  6. 在目标安全规则集详情页面,您可以查看以下信息:

    • 查看安全规则集的信息,包括安全规则集的 ID规则集类型关联实例数量

    • 查看安全规则信息,包括数据交互台工单管理SQL 审核类型的安全规则,同时也可以查看每个安全规则的安全规则 ID安全规则名称规则类型是否启用最近修改时间等。

启用或关闭安全规则

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

  1. 登录 DBW 控制台

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

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

  4. 安全规则集页面的顶部菜单栏,选择数据库类型云数据库 PostgreSQL 版

  5. 单击目标安全规则集操作列的查看

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

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

参考文档

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

说明

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

  • 数据交互台

    安全规则名称是否默认启用级别默认值
    禁止 ALTER_TABLE 在数据库交互台直接执行。启用高(红线)
    禁止在数据库交互台直接执行 pg_terminate_backend 函数。启用高(红线)
    禁止存储过程在数据库交互台直接创建。启用高(红线)
    禁止无法识别 SQL 解析异常继续执行【继续执行会导致安全规则失效】。启用高(红线)
    禁止无法解析权限的 SQL 继续执行【继续执行会导致安全规则失效】启用高(红线)
    控制 SQL 库表权限校验。启用高(红线)
    禁止 CREATE_TABLE 在数据库交互台直接执行。启用中(警告)
    禁止 DROP_TABLE 在数据库交互台直接执行。启用中(警告)
    禁止 INSERT 在数据库交互台直接执行。启用中(警告)
    禁止 UPDATE 在 SQL 控制台直接执行。启用高(红线)
    禁止 DELETE 在 SQL 控制台直接执行。启用高(红线)
    限制 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 语句不建议更新表上的“创建时间”列。

    禁用

    中(警告)

    • create_time

    • create_at

    UPDATE 语句建议更新表上的“修改时间”列。禁用中(警告)update_time,modify_time,update_at,modify_at
    UPDATE 语句检测 SET 多个列之间的分隔符( AND 非法)。禁用中(警告)
    UPDATE/DELETE 语句检测 WHERE 条件是否包含子查询。禁用中(警告)
    限制 WHERE 条件中 IN 子句包含元素个数。禁用中(警告)1000
    UPDATE 语句检测是否更新了主键。禁用中(警告)
    UPDATE 语句检测 UPDATE 的表/字段是否存在。禁用中(警告)
    UPDATE 语句检测是否更新了唯一键。禁用中(警告)
    限制 SELECT 语句 LIMITOFFSET 大小。禁用中(警告)2000
    SELECT 语句建议包含 WHERE 条件。禁用中(警告)
    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 语句。禁用中(警告)
  • SQL 审核

    安全规则名称是否默认启用级别默认值

    限制 UPDATE/DELETE 语句多表关联的数量。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线等级。

    5

    UPDATE/DELETE 语句检测多表关联语法是否完整(JOIN 遗漏 ON 子句)。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线等级。

    UPDATE/DELETE 语句建议指定 WHERE 条件。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线等级。

    INSERT 语句字段名不能重复。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线等级。

    INSERT 语句字段列表和值列表要匹配。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    INSERT 语句建议指定 INSERT 字段列表。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线等级。

    INSERT 语句不能为 NOT NULL 列插入 NULL 值。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    true

    INSERT 语句不建议使用 SYSDATE() 函数。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    限制 INSERT 语句一条 INSERT VALUES 的总行数。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    1000

    INSERT 语句检测 INSERT 的表、字段是否存在。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    UPDATE 语句建议更新表上的“修改时间”列。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    update_timemodify_timeupdate_atmodify_at

    UPDATE 语句检测 SET 多个列之间的分隔符( AND 非法)。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    UPDATE/DELETE 语句检测 WHERE 条件是否包含子查询。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    限制 WHERE 条件中 IN 子句包含元素个数。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    1000

    UPDATE 语句检测是否更新了主键。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    UPDATE 多表时检测 SET 的列是否指定表前缀。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    UPDATE 语句不建议更新表上的“创建时间”列。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    create_timecreate_at

    UPDATE 语句检测 UPDATE 的表、字段是否存在。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    UPDATE 语句检测是否更新了唯一键。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    SQL 语法解析异常,建议检查 SQL 语句是否合法。

    启用

    • 低:建议级别。

    • 中:警告级别。

    • 高:(默认等级)红线等级。

    限制 SELECT 语句 LIMITOFFSET 大小。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    2000

    SELECT 语句建议包含 WHERE 条件。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    true

    SELECT 时不建议 GROUP BY 常量。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    限制 SELECT 语句多表关联的数量。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    3

    SELECT 语句不建议 ORDER BY 表达式或函数。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    SELECT 语句不建议使用 ORDER BY RAND()

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    SELECT 语句不建议使用 HAVING 子句。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    SELECT 语句不建议使用 *

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    SELECT 语句不建议对不同的表 GROUP BYORDER BY

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    SELECT 语句不建议对常量进行 ORDER BY

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    SELECT 语句不建议 ORDER BY 多个字段使用不同方向排序。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    SELECT 语句不建议 GROUP BY 表达式或函数。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    SELECT 语句不建议使用 UNION

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    WHERE 条件中不建议使用前通配符查找。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    WHERE 条件中不建议使用反向查询(NOT INNOT LIKE)。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    WHERE 条件中检测是否通过 OR 操作符连接过滤条件。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

    WHERE 条件中检测没有通配符的 LIKE 语句。

    启用

    • 低:建议级别。

    • 中:(默认等级)警告级别。

    • 高:红线级别。

相关文档