在数据管理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 命令类型,取值请参见DMS支持的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。

DMS支持的Redis命令类别

目前DMS能够通过语法解析识别的命令大类和命令子类说明如下:

命令分类 具体类型枚举
keys读命令
  • EXISTS
  • TTL
  • PTTL
  • RANDOMKEY
  • TYPE
  • SCAN
keys写命令
  • DEL
  • DUMP
  • EXPIRE
  • EXPIREART
  • MOVE
  • PERSIST
  • RENAME
  • RENAMENX
  • TOUCH
  • UNLINK
string读命令
  • GET
  • GETRANGE
  • BITCOUNT
  • GETBIT
  • MGET
  • STRLEN
string写命令
  • APPEND
  • DECR
  • DECRBY
  • GETSET
  • INCR
  • INCRBY
  • INCRBYFLOAT
  • MSET
  • MSETNX
  • SET
  • SETRANGE
  • SETBIT
list读命令
  • LINDEX
  • LLEN
  • LRANGE
list写命令
  • BLPOP
  • BRPOP
  • BRPOPLPUSH
  • LINSERT
  • LPOP
  • LPUSH
  • LPUSHX
  • LREM
  • LSET
  • LTRIM
  • RPOP
  • RPOPLPUSH
  • RPUSH
  • RPUSHX
set读命令
  • SCARD
  • SISMEMBER
  • SRANDMEMBER
  • SSCAN
  • SDIFF
  • SINTER
  • SMEMBERS
  • SUNION
set写命令
  • SADD
  • SMOVE
  • SPOP
  • SREM
  • SDIFFSTORE
  • SINTERSTORE
  • SUNIONSTORE
sortedset读命令
  • ZCARD
  • ZCOUNT
  • ZLEXCOUNT
  • ZRANGE
  • ZRANGEBYLEX
  • ZRANGEBYSCORE
  • ZRANK
  • ZREVRNGE
  • ZREVRANGEBYLEX
  • ZREVRANGEBYSCORE
  • ZREVRANK
  • ZSCAN
  • ZSCORE
sortedset写命令
  • ZADD
  • ZINCRBY
  • ZINTERSTORE
  • ZPOPMAX
  • ZPOPMIN
  • ZREM
  • ZUNIONSTORE
  • BZPOPMIN
  • BZPOPMAX
  • ZREMRANGEBYLEX
  • ZREMRANGEBYRANK
  • ZREMRANGEBYSCORE
  • ZUNIONSTORE
hash读命令
  • HEXISTS
  • HGET
  • HLEN
  • HMGET
  • HSCAN
  • HSTRLEN
  • HGETALL
  • HKEYS
  • HVALS
hash写命令
  • HDEL
  • HINCRBY
  • HINCRBYFLOAT
  • HMESET
  • HSET
  • HSETNX
server读命令
  • DBSIZE
  • CLIENT LIST
  • INFO
  • SLOWLOG
connection命令 PING
HyperLogLog命令
  • PFCOUNT
  • PFADD
  • PFMERGE
TairDoc命令 TairDoc支持的枚举类型,请参见TairDoc命令列表
TairString命令 TairString支持的枚举类型,请参见Tairtring命令列表
TairBloom命令 TairBloom支持的枚举类型,请参见TairBloom命令列表
TairGIS命令 TairGIS支持的枚举类型,请参见TairGIS命令列表
TairHash命令 TairHash支持的枚举类型,请参见TairHash命令列表
TairCpc命令 TairCpc支持的枚举类型,请参见TairCpc命令列表
TairTS命令 TairTS支持的枚举类型,请参见TairTS命令列表
TairRoaring命令 TairRoaring支持的枚举类型,请参见TairRoaring命令列表
TairSearch命令 TairSearch支持的枚举类型,请参见TairSearch命令列表