數(shù)據(jù)管理DMS提供的SQL窗口支持關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù),安全規(guī)則的定義和分類各不相同。本文介紹MongoDB數(shù)據(jù)庫(kù)的SQL窗口安全規(guī)則。
SQL窗口檢測(cè)點(diǎn)
檢測(cè)點(diǎn) | 描述 |
---|---|
基礎(chǔ)配置項(xiàng) | 規(guī)則集的基礎(chǔ)配置,包括單次查詢最大返回行數(shù)和結(jié)果集是否支持編輯。 |
用戶權(quán)限檢查 | 對(duì)用戶執(zhí)行權(quán)限進(jìn)行約束。例如,是否需要對(duì)普通用戶進(jìn)行檢查權(quán)限。 |
集合命令規(guī)范 | 對(duì)Mongo集合命令執(zhí)行進(jìn)行約束。 |
DB命令規(guī)范 | 對(duì)Mongo DB命令進(jìn)行約束。 |
查詢緩存命令規(guī)范 | 對(duì)Mongo查詢緩存命令進(jìn)行約束。 |
用戶管理命令規(guī)范 | 對(duì)Mongo用戶管理命令進(jìn)行約束。 |
角色管理命令規(guī)范 | 對(duì)Mongo角色管理命令進(jìn)行約束。 |
復(fù)制集命令規(guī)范 | 對(duì)Mongo復(fù)制集命令進(jìn)行約束。 |
分片命令規(guī)范 | 對(duì)Mongo分片命令進(jìn)行約束。 |
說(shuō)明 功能模塊的檢測(cè)點(diǎn)中內(nèi)置了大量的配置項(xiàng),您可以根據(jù)實(shí)際需求調(diào)整默認(rèn)配置或增加新規(guī)則。具體操作,請(qǐng)參見(jiàn)配置安全規(guī)則。
檢測(cè)點(diǎn)工作流程圖:
因子和動(dòng)作
- 因子:系統(tǒng)內(nèi)置變量,可用來(lái)獲取安全規(guī)則校驗(yàn)的上下文信息,如獲取命令類型、影響行數(shù)等。
- 因子全部以
@fac.
開(kāi)頭,后接因子名稱。 - 每個(gè)模塊的不同檢測(cè)點(diǎn)會(huì)提供不同因子。
表 1. SQL窗口模塊的因子 因子名 說(shuō)明 @fac.sql_sub_type SQL子類,取值可參見(jiàn)支持的MongoDB命令。 @fac.env_type 環(huán)境類型,值是環(huán)境標(biāo)識(shí)。如: DEV
、PRODUCT
。詳情請(qǐng)參見(jiàn)實(shí)例環(huán)境說(shuō)明。@fac.current_sql 當(dāng)前的SQL。 @fac.user_is_admin 當(dāng)前用戶是否為管理員。取值為: - true
- false
@fac.user_is_dba 當(dāng)前用戶是否是DBA。取值為: - true
- false
@fac.user_is_inst_dba 當(dāng)前用戶是否是當(dāng)前實(shí)例的DBA。取值為: - true
- false
@fac.user_is_sec_admin 當(dāng)前用戶是否是安全管理員。取值為: - true
- false
- 因子全部以
- 動(dòng)作:滿足
if
條件之后系統(tǒng)執(zhí)行的行為,表達(dá)了安全規(guī)則的主要目的。例如禁止提交工單、選擇工作流、允許執(zhí)行、拒絕執(zhí)行等。- 動(dòng)作全部以
@act.
開(kāi)頭,后接動(dòng)作名稱。 - 每個(gè)模塊的不同檢測(cè)點(diǎn)會(huì)提供不同動(dòng)作。
表 2. SQL窗口模塊的動(dòng)作 動(dòng)作名 說(shuō)明 @act.reject_execute 拒絕執(zhí)行當(dāng)前SQL。 @act.allow_execute 允許執(zhí)行當(dāng)前SQL。 @act.reject_sql_type_execute 拒絕執(zhí)行特定SQL類型的SQL,動(dòng)作后需要指定具體的SQL子類型,例如: @act.reject_sql_type_execute 'UPDATE'
。@act.allow_sql_type_execute 允許執(zhí)行特定SQL類型的SQL,同上需要指定具體的SQL子類型。 - 動(dòng)作全部以
支持的MongoDB命令
DMS支持的MongoDB命令的詳細(xì)信息,請(qǐng)參見(jiàn)支持的MongoDB命令。