在數(shù)據(jù)管理DMS提供的SQL窗口中,關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫的安全規(guī)則的定義和分類各不相同。本文介紹Redis數(shù)據(jù)庫的SQL窗口安全規(guī)則。

SQL窗口檢測點(diǎn)

檢測點(diǎn)描述
執(zhí)行權(quán)限規(guī)范對(duì)命令執(zhí)行權(quán)限進(jìn)行約束。例如,檢查提交者是否擁有對(duì)應(yīng)的庫、表、列權(quán)限等。
命令規(guī)范-Keys對(duì)Keys命令進(jìn)行約束。
命令規(guī)范-String對(duì)String命令進(jìn)行約束。
命令規(guī)范-List對(duì)List命令進(jìn)行約束。
命令規(guī)范-Set對(duì)Set命令進(jìn)行約束。
命令規(guī)范-SortedSet對(duì)SortedSet命令進(jìn)行約束。
命令規(guī)范-Hash對(duì)Hash命令進(jìn)行約束。
命令規(guī)范-Cpc對(duì)Cpc命令進(jìn)行約束。
命令規(guī)范-Ts對(duì)Ts命令進(jìn)行約束。
命令規(guī)范-Roaring對(duì)Roaring命令進(jìn)行約束。
命令規(guī)范-Search對(duì)Search命令進(jìn)行約束。
命令規(guī)范-其他對(duì)其他命令進(jìn)行約束。
說明 功能模塊的檢測點(diǎn)中內(nèi)置了大量的配置和規(guī)則,您可以根據(jù)實(shí)際需求調(diào)整配置值、規(guī)則狀態(tài),或自定義新規(guī)則。具體操作,請(qǐng)參見配置安全規(guī)則

檢測點(diǎn)工作流程圖:

流程圖

因子和動(dòng)作

因子

系統(tǒng)內(nèi)置變量,可用來獲取安全規(guī)則校驗(yàn)的上下文信息,如獲取命令類型、影響行數(shù)等。
說明
  • 因子全部以@fac.開頭,后接因子名稱。
  • 每個(gè)模塊的不同檢測點(diǎn)會(huì)提供不同因子。
表 1. SQL窗口模塊的因子
因子名說明
@fac.cmd_type命令類型,取值請(qǐng)參見支持的Redis命令
@fac.env_type環(huán)境類型,值是環(huán)境標(biāo)識(shí)。如:DEVPRODUCT。詳情請(qǐng)參見實(shí)例環(huán)境說明
@fac.is_read是否為讀命令。取值為:
  • true
  • false
@fac.is_write是否為寫命令。取值為:
  • true
  • false
@fac.current_sql當(dāng)前SQL。
@fac.user_is_admin當(dāng)前用戶的系統(tǒng)角色是否為管理員。取值為:
  • true
  • false
@fac.user_is_dba當(dāng)前用戶的系統(tǒng)角色是否為DBA。取值為:
  • true
  • false
@fac.user_is_inst_dba當(dāng)前用戶是否為當(dāng)前實(shí)例的DBA。取值為:
  • true
  • false

動(dòng)作

滿足if條件之后系統(tǒng)執(zhí)行的行為,表達(dá)了安全規(guī)則的主要目的。例如禁止提交工單、選擇工作流、允許執(zhí)行、拒絕執(zhí)行等。
說明
  • 動(dòng)作全部以@act.開頭,后接動(dòng)作名稱。
  • 每個(gè)模塊的不同檢測點(diǎn)會(huì)提供不同動(dòng)作。
表 2. SQL窗口模塊的動(dòng)作
動(dòng)作名說明
@act.reject_execute拒絕執(zhí)行當(dāng)前SQL。
@act.allow_execute允許執(zhí)行當(dāng)前SQL。
@act.check_redis_permission校驗(yàn)Redis命令的執(zhí)行權(quán)限,不直接執(zhí)行SQL。
@act.query_without_permission_check不校驗(yàn)Redis命令的執(zhí)行權(quán)限,直接執(zhí)行SQL。

支持的Redis命令

DMS支持的Redis命令的詳細(xì)信息,請(qǐng)參見支持的Redis命令