全部產品
Search
文件中心

:SQL視窗-關係型資料庫

更新時間:Jun 30, 2024

Data Management安全規則提供的SQL視窗模組支援關係型資料庫和非關係型資料庫。本文以關係型資料庫MySQL為例,介紹配置SQL視窗規則的方法。

SQL視窗模組檢測點

檢測點

規則說明

基礎配置項

規則集的基礎配置,包括單次查詢最大返回行數、結果集是否支援編輯、是否允許對敏感性資料進行計算等。

SQL執行數量規範

控制單次提交SQL的個數。

DQL SQL規範

增加執行DQL SQL類型的限制。

其他SQL規範

對執行不同類型的SQL進行約束,例如,允許未識別SQL執行(允許執行DMS不能識別的SQL命令)、禁止全表DELETE執行等。

SQL許可權規範

控制SQL庫表、敏感列、行許可權等。

SQL執行效能規範

禁止執行影響行數或資料表空間超過閾值的DDL、DML。

庫表列許可權識別異常規範

當DQL、DML、DDL或DCL SQL解析異常時,是否允許繼續執行SQL或拒絕執行特定SQL類型。

邏輯庫SQL執行規範

對執行不同類型的SQL進行約束。

說明

功能模組的檢測點中內建了大量的配置和規則,您可以根據實際需求調整配置值、規則狀態,或自訂新規則。具體操作,請參見配置安全規則

檢測點工作流程圖:

因子和動作

  • 因子:系統內建變數,可用來擷取安全規則校正的上下文資訊,如擷取命令類型、影響行數等。

    • 因子全部以@fac.開頭,後接因子名稱。

    • 每個模組的不同檢測點會提供不同因子。

    表 1. SQL視窗模組的因子

    因子

    說明

    @fac.sql_count

    單次提交的SQL條數。

    @fac.select_sql_count

    單次提交的SQL中查詢類SQL的條數。

    @fac.dml_sql_count

    單次提交的SQL中DML SQL的條數。

    @fac.sql_type

    SQL分類。詳情請參見DMS支援的SQL

    @fac.sql_sub_type

    SQL子類。詳情請參見DMS支援的SQL

    @fac.env_type

    環境類型,值為環境標識。如:DEVPRODUCT。詳情請參見執行個體環境類型

    @fac.fulltable_delete

    當前SQL是否為全表DELETE。取值為:

    • true

    • false

    @fac.fulltable_update

    當前SQL是否為全表UPDATE。取值為:

    • 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

    @fac.user_is_sec_admin

    目前使用者是否是安全性系統管理員。取值為:

    • true

    • false

    @fac.sql_affected_rows

    當前SQL執行的SQL影響行數。

    說明

    會執行COUNT操作,請謹慎使用。

    @fac.sql_relate_table_store_size

    當前SQL訪問的表的預估空間總大小(MB)。

    說明

    使用的是採集之後的預估值,非真實值。

  • 動作:滿足if條件之後系統執行的行為,表達了安全規則的主要目的。例如禁止提交工單、選擇工作流程、允許執行、拒絕執行等。

    • 動作全部以@act.開頭,後接動作名稱。

    • 每個模組的不同檢測點會提供不同動作。

    表 2. SQL視窗模組的動作

    動作

    說明

    @act.reject_execute

    拒絕執行當前SQL。

    @act.allow_execute

    允許執行當前SQL。

    @act.reject_sql_type_execute

    拒絕執行特定類型的SQL,需要指定具體的SQL子類型。例如:@act.reject_sql_type_execute 'UPDATE'

    @act.allow_sql_type_execute

    允許執行特定類型的SQL,需要指定具體的SQL子類型。例如:@act.allow_sql_type_execute 'UPDATE'

    @act.check_dml_sec_column_permission

    檢查有無敏感列許可權,如果沒有,不執行DML變更。

    @act.uncheck_dml_sec_column_permission

    不檢查敏感列許可權。

    @act.check_sql_access_permission

    檢查SQL操作許可權,對訪問的庫、表、列是否有對應許可權。例如查詢、變更。

    @act.uncheck_sql_access_permission

    不檢查SQL操作許可權。

    @act.enable_sec_column_mask

    對無許可權的敏感列進行資料脫敏。

    @act.disable_sec_column_mask

    不對無許可權的敏感列進行資料脫敏。

DMS支援的SQL

DML

  • INSERT

  • INSERT_SELECT

  • SELECT_INTO

  • MULTI_INSERT

  • REPLACE

  • REPLACE_INTO

  • UPDATE

  • DELETE

  • MERGE

  • REMOVE

  • MSCK_REPAIR

  • REFRESH_MATERIALIZED_VIEW

  • BEGIN

  • START_TRANSACTION

  • COMMIT

  • ROLLBACK

  • SAVEPOINT

  • RELEASE_SAVEPOINT

  • SET

  • ADD_EDGE

  • ADD_VERTEX

  • SET_PROPERTY

  • GDB_DROP

  • INSERT_MANY

  • INSERT_ONE

  • DELETE_MANY

  • DELETE_ONE

  • UPDATE_MANY

  • UPDATE_ONE

  • WLM_ADD_RULE

DDL

  • CREATE

  • CREATE_SCHEMA

  • CREATE_INDEX

  • CREATE_VIEW

  • CREATE_SEQUENCE

  • CREATE_TABLE

  • CREATE_TABLEGROUP

  • CREATE_PACKAGE

  • CREATE_SELECT

  • TRUNCATE

  • DROP

  • DROP_SCHEMA

  • DROP_INDEX

  • DROP_VIEW

  • DROP_TABLE

  • DROP_TABLEGROUP

  • DROP_SEQUENCE

  • RENAME

  • ALTER_TABLE_DROP_COLUMN

  • ALTER_TABLE_CHARACTER_COLLATE

  • ALTER_TABLE_AUTOINCREMENT

  • ALTER

  • ALTER_SCHEMA

  • ALTER_INDEX

  • ALTER_VIEW

  • ALTER_TABLE

  • ALTER_TABLEGROUP

  • ALTER_SEQUENCE

  • CREATE_FUNCTION

  • ALTER_FUNCTION

  • DROP_FUNCTION

  • CREATE_PROCEDURE

  • ALTER_PROCEDURE

  • DROP_PROCEDURE

  • MONGO_CREATE_INDEX

  • MONGO_DROP_INDEX

  • CREATE_DATABASE

  • ALTER_DATABASE

  • DROP_DATABASE

  • CREATE_USER

  • ALTER_USER

  • DROP_USER

  • CREATE_ROLE

  • DROP_ROLE

  • EXEC

  • CALL_PROCEDURE

  • CREATE_TRIGGER

  • ALTER_TRIGGER

  • DROP_TRIGGER

  • CREATE_EVENT

  • ALTER_EVENT

  • DROP_EVENT

  • ROLLBACK_DDL

  • CANCEL_DDL

  • VACUUM

  • SUBMIT_JOB

  • CANCEL_JOB

  • BUILD_TABLE

  • IF

DQL

  • SELECT

  • DESC

  • EXPLAIN

  • SHOW_INDEX

  • SHOW

  • CHECK_TABLE

  • SHOW_DDL

  • LIST

  • GDB_QUERY

  • CHECKSUM

  • SELECT_PG_TERMINATION_BACKEND

  • WLM_LIST_RULE

DCL

  • GRANT

  • DECLARE

  • SET

  • ANALYZE

  • FLUSH

  • OPTIMIZE

  • KILL

  • RECOVER_DDL

  • REMOVE_DDL

  • SELECT_PG_TERMINATION_BACKEND