在Data Management提供的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.
開頭,後接因子名稱。 - 每個模組的不同檢測點會提供不同因子。
因子名 | 說明 |
@fac.cmd_type | 命令類型,取值請參見支援的Redis命令。 |
@fac.env_type | 環境類型,值是環境標識。如:DEV 、PRODUCT 。詳情請參見執行個體環境說明。 |
@fac.is_read | 是否為讀命令。取值為:
|
@fac.is_write | 是否為寫命令。取值為:
|
@fac.current_sql | 當前SQL。 |
@fac.user_is_admin | 目前使用者的系統角色是否為管理員。取值為:
|
@fac.user_is_dba | 目前使用者的系統角色是否為DBA。取值為:
|
@fac.user_is_inst_dba | 目前使用者是否為當前執行個體的DBA。取值為:
|
動作
滿足if條件之後系統執行的行為,表達了安全規則的主要目的。例如禁止提交工單、選擇工作流程、允許執行、拒絕執行等。
說明
- 動作全部以
@act.
開頭,後接動作名稱。 - 每個模組的不同檢測點會提供不同動作。
動作名 | 說明 |
@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命令。