数据管理DMS提供的SQL窗口支持关系型数据库和非关系型数据库,安全规则的定义和分类各不相同。本文档介绍MongoDB数据库的SQL窗口安全规则。
单次查询最大返回行数:定义查询结果最多返回多少行。
替代原配置管理中的单次查询SQL最大的行数。
SQL权限规范:对SQL执行权限进行约束。
如提交者是否拥有对应的库、表、列权限。
集合规范:对Mongo 集合命令执行进行约束。
您可以使用安全规则模板库中提供的规则,也可以自定义新增规则。详情请参见新增规则操作步骤。
命令分类 | 具体类型枚举 |
---|---|
集合命令 | 查询命令列表:
|
DB命令 | 数据库查询命令:
|
查询缓存命令 | 读命令:
|
用户管理命令 | 用户查询命令:
|
角色管理命令 | 角色查询命令:
|
复制集命令 |
|
分片命令 |
|
因子:因子是系统内置变量,可用来获取安全规则校验的上下文信息,如获取SQL类型、影响行数等。因子全部以@fac.
开头,后接因子名称。每个模块的不同检测点均提供不同因子,SQL窗口中提供因子的说明请参见下表:
因子名 | 说明 |
---|---|
@fac.sql_sub_type | SQL子类,取值可参见DMS支持的SQL。 |
@fac.env_type | 环境类型,值是环境标识。如:DEV 、PRODUCT 。详情请参见实例环境说明。 |
@fac.current_sql | 当前的SQL。 |
@fac.user_is_admin | 当前用户是否为管理员。取值为:
|
@fac.user_is_dba | 当前用户是否是DBA。取值为:
|
@fac.user_is_inst_dba | 当前用户是否是当前实例的DBA。取值为:
|
@fac.user_is_sec_admin | 当前用户是否是安全管理员。取值为:
|
动作:动作是满足if
条件之后系统执行的行为,例如禁止提交工单、选择工作流、允许执行、拒绝执行等,这些动作表达了安全规则的主要目的。动作全部以@act.
开头,后接动作名称。每个模块的不同检测点均提供不同动作,SQL窗口中提供动作的说明请参见下表:
动作名 | 说明 |
---|---|
@act.reject_execute | 拒绝执行当前SQL。 |
@act.allow_execute | 允许执行当前SQL。 |
@act.reject_sql_type_execute | 拒绝执行特定SQL类型的SQL,动作后需要指定具体的SQL子类型,例如:@act.reject_sql_type_execute 'UPDATE' 。 |
@act.allow_sql_type_execute | 允许执行特定SQL类型的SQL,同上需要指定具体的SQL子类型。 |
安全规则提供了大量的规则模板可直接选择启用,也可以在模板基础上按照实际需求自行调整启用。SQL窗口中的模板如下所示:
检测点 | 模板 |
---|---|
用户权限检查 | 普通用户需要检查权限。 |
集合命令规范 | 生产环境,允许执行数据更新命令。 |
生产环境,允许执行集合修改命令。 | |
生产环境,允许执行索引修改命令。 | |
生产环境,允许执行其他高危命令。 | |
允许执行所有集合查询命令。 | |
DB命令规范 | 线上环境,允许创建集合。 |
线下环境,允许执行其他数据库高危命令。 | |
线上环境,允许执行其他数据库高危命令。 | |
允许执行所有数据库查询命令。 | |
查询缓存命令规范 | 允许执行所有查询计划缓存写命令。 |
允许执行所有查询计划缓存读命令。 | |
用户管理命令规范 | 允许执行用户查询命令。 |
允许执行用户修改命令。 | |
角色管理命令规范 | 允许执行角色查询命令。 |
线下环境,允许执行角色修改命令。 | |
线下环境,允许执行角色修改命令。 | |
复制集命令规范 | 允许执行副本集查询命令。 |
分片命令规范 | 允许执行分片查询命令。 |
登录DMS控制台。
在页面顶部的导航栏中,单击系统管理 > 安全管理 > 安全规则。
在安全规则页签中,单击目标规则集右侧操作列中的编辑。
在详情页面左侧的导航栏中,单击SQL窗口。
在SQL窗口页签中,单击操作右侧的新增规则。
在新增规则 - SQL窗口对话框中,设置如下参数:
参数 | 说明 |
---|---|
检测点(必选) | 选择需要增加规则的检测点。检测点的详情请参见检测点。 |
模板库(可选) | 安全规则模板库中提供了大量规则模板,选择了检测点以后,您可以从模板库中按需加载规则模板。可选的模板库列表请参见模板库。 |
规则名称(必填) | 自定义规则名称。(如您在模板库中选择了规则模板,此处会自动填充。) |
规则DSL(必填) | 填写规则DSL,DSL语法请参见安全规则DSL语法。如您在模板库中选择了规则模板,此处会自动填充。 |
单击提交。
新增的规则默认处于已禁用状态,单击规则右侧操作列中的启用。
在弹出的对话框中单击确认。