在数据管理DMS提供的SQL窗口中,关系型数据库和非关系型数据库的安全规则的定义和分类各不相同。本文介绍Redis数据库的SQL窗口安全规则。

SQL窗口检测点

检测点描述
执行权限规范对命令执行权限进行约束。例如,检查提交者是否拥有对应的库、表、列权限等。
命令规范-Keys对Keys命令进行约束。
命令规范-String对String命令进行约束。
命令规范-List对List命令进行约束。
命令规范-Set对Set命令进行约束。
命令规范-SortedSet对SortedSet命令进行约束。
命令规范-Hash对Hash命令进行约束。
命令规范-Cpc对Cpc命令进行约束。
命令规范-Ts对Ts命令进行约束。
命令规范-Roaring对Roaring命令进行约束。
命令规范-Search对Search命令进行约束。
命令规范-其他对其他命令进行约束。
说明 功能模块的检测点中内置了大量的配置和规则,您可以根据实际需求调整配置值、规则状态,或自定义新规则。具体操作,请参见配置安全规则

检测点工作流程图:

流程图

因子和动作

因子

系统内置变量,可用来获取安全规则校验的上下文信息,如获取命令类型、影响行数等。
说明
  • 因子全部以@fac.开头,后接因子名称。
  • 每个模块的不同检测点会提供不同因子。
表 1. SQL窗口模块的因子
因子名说明
@fac.cmd_type命令类型,取值请参见支持的Redis命令
@fac.env_type环境类型,值是环境标识。如:DEVPRODUCT。详情请参见实例环境说明
@fac.is_read是否为读命令。取值为:
  • true
  • false
@fac.is_write是否为写命令。取值为:
  • true
  • false
@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

动作

满足if条件之后系统执行的行为,表达了安全规则的主要目的。例如禁止提交工单、选择工作流、允许执行、拒绝执行等。
说明
  • 动作全部以@act.开头,后接动作名称。
  • 每个模块的不同检测点会提供不同动作。
表 2. SQL窗口模块的动作
动作名说明
@act.reject_execute拒绝执行当前SQL。
@act.allow_execute允许执行当前SQL。
@act.check_redis_permission校验Redis命令的执行权限,不直接执行SQL。
@act.query_without_permission_check不校验Redis命令的执行权限,直接执行SQL。

支持的Redis命令

DMS支持的Redis命令的详细信息,请参见支持的Redis命令