本文介绍如何在数据库工作台 DBW 控制台管理安全规则。
安全管控是为了保护数据库系统中的数据和资源而制定的规则和措施。该功能可以帮助您在 DBW 实现精细化管控数据库实例,例如免密登录实例、工单管理、安全规则管理等。更多信息,请参见安全规则集管理。
只有在数据交互台的 SQL 窗口或通过工单执行的 SQL 语句才会被拦截生效。
安全规则集内开启的安全规则请勿出现冲突的情况,否则您的实例绑定的安全规则将失效。
系统默认提供一个安全规则集即名称为 postgres default
。默认的安全规则集和新建的安全规则集默认包含的安全规则,请参见参考文档。
系统规则不支持删除和修改仅支持修改和关闭。
登录 DBW 控制台。
在顶部菜单栏,选择地域。
在左侧导航栏,选择数据管理 > 安全规则。
在安全规则集页面的顶部菜单栏,选择数据库类型为云数据库 PostgreSQL 版。
单击目标安全规则集操作列的查看。
在目标安全规则集详情页面,您可以查看以下信息:
查看安全规则集的信息,包括安全规则集的 ID、规则集类型和关联实例数量。
查看安全规则信息,包括数据交互台、工单管理和 SQL 审核类型的安全规则,同时也可以查看每个安全规则的安全规则 ID、安全规则名称、规则类型、是否启用、最近修改时间等。
您可以根据需求启用或关闭安全规则集内的规则。
登录 DBW 控制台。
在顶部菜单栏,选择地域。
在左侧导航栏,选择数据管理 > 安全规则。
在安全规则集页面的顶部菜单栏,选择数据库类型为云数据库 PostgreSQL 版。
单击目标安全规则集操作列的查看。
在目标安全规则集详情页面,单击目标规则是否启用列下的开关。
在确定开启吗? 或确定关闭吗? 对话框,单击确定。
安全规则集中默认的安全规则(即系统规则)如下表所示。
说明
只有在数据交互台的 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 语句建议更新表上的“修改时间”列。 | 禁用 | 中(警告) | update_time,modify_time,update_at,modify_at |
UPDATE 语句检测 SET 多个列之间的分隔符( AND 非法)。 | 禁用 | 中(警告) | 无 |
UPDATE/DELETE 语句检测 WHERE 条件是否包含子查询。 | 禁用 | 中(警告) | 无 |
限制 WHERE 条件中 IN 子句包含元素个数。 | 禁用 | 中(警告) | 1000 |
UPDATE 语句检测是否更新了主键。 | 禁用 | 中(警告) | 无 |
UPDATE 语句检测 UPDATE 的表/字段是否存在。 | 禁用 | 中(警告) | 无 |
UPDATE 语句检测是否更新了唯一键。 | 禁用 | 中(警告) | 无 |
限制 SELECT 语句 LIMIT 的 OFFSET 大小。 | 禁用 | 中(警告) | 2000 |
SELECT 语句建议包含 WHERE 条件。 | 禁用 | 中(警告) | 无 |
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 语句。 | 禁用 | 中(警告) | 无 |
SQL 审核
安全规则名称 | 是否默认启用 | 级别 | 默认值 |
---|---|---|---|
限制 | 启用 |
| 5 |
| 启用 |
| 无 |
| 启用 |
| 无 |
| 启用 |
| |
| 启用 |
| |
| 启用 |
| |
| 启用 |
| true |
| 启用 |
| |
限制 | 启用 |
| 1000 |
| 启用 |
| 无 |
| 启用 |
|
|
| 启用 |
| 无 |
| 启用 |
| 无 |
限制 | 启用 |
| 1000 |
| 启用 |
| 无 |
| 启用 |
| 无 |
| 启用 |
|
|
| 启用 |
| 无 |
| 启用 |
| 无 |
SQL 语法解析异常,建议检查 SQL 语句是否合法。 | 启用 |
| 无 |
限制 | 启用 |
| 2000 |
| 启用 |
| true |
| 启用 |
| 无 |
限制 | 启用 |
| 3 |
| 启用 |
| 无 |
| 启用 |
| 无 |
| 启用 |
| 无 |
| 启用 |
| 无 |
| 启用 |
| 无 |
| 启用 |
| 无 |
| 启用 |
| 无 |
| 启用 |
| 无 |
| 启用 |
| 无 |
| 启用 |
| 无 |
| 启用 |
| 无 |
| 启用 |
| 无 |
| 启用 |
| 无 |