数据管理DMS提供的SQL窗口支持关系型数据库和非关系型数据库,安全规则的定义和分类各不相同。本文介绍MongoDB数据库的SQL窗口安全规则。
SQL窗口检测点
检测点 | 描述 |
---|---|
基础配置项 | 规则集的基础配置,包括单次查询最大返回行数和结果集是否支持编辑。 |
用户权限检查 | 对用户执行权限进行约束。例如,是否需要对普通用户进行检查权限。 |
集合命令规范 | 对Mongo集合命令执行进行约束。 |
DB命令规范 | 对Mongo DB命令进行约束。 |
查询缓存命令规范 | 对Mongo查询缓存命令进行约束。 |
用户管理命令规范 | 对Mongo用户管理命令进行约束。 |
角色管理命令规范 | 对Mongo角色管理命令进行约束。 |
复制集命令规范 | 对Mongo复制集命令进行约束。 |
分片命令规范 | 对Mongo分片命令进行约束。 |
说明 功能模块的检测点中内置了大量的配置项,您可以根据实际需求调整默认配置或增加新规则。具体操作,请参见配置安全规则。
检测点工作流程图:
因子和动作
- 因子:系统内置变量,可用来获取安全规则校验的上下文信息,如获取命令类型、影响行数等。
- 因子全部以
@fac.
开头,后接因子名称。 - 每个模块的不同检测点会提供不同因子。
表 1. SQL窗口模块的因子 因子名 说明 @fac.sql_sub_type SQL子类,取值可参见支持的MongoDB命令。 @fac.env_type 环境类型,值是环境标识。如: DEV
、PRODUCT
。详情请参见实例环境说明。@fac.current_sql 当前的SQL。 @fac.user_is_admin 当前用户是否为管理员。取值为: - true
- false
@fac.user_is_dba 当前用户是否是DBA。取值为: - true
- false
@fac.user_is_inst_dba 当前用户是否是当前实例的DBA。取值为: - true
- false
@fac.user_is_sec_admin 当前用户是否是安全管理员。取值为: - true
- false
- 因子全部以
- 动作:满足
if
条件之后系统执行的行为,表达了安全规则的主要目的。例如禁止提交工单、选择工作流、允许执行、拒绝执行等。- 动作全部以
@act.
开头,后接动作名称。 - 每个模块的不同检测点会提供不同动作。
表 2. 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子类型。 - 动作全部以
支持的MongoDB命令
DMS支持的MongoDB命令的详细信息,请参见支持的MongoDB命令。