日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

SQL變更

SQL變更作為變更SQL執行的入口,需要極高的安全性。在工單提交、審批時,通過一系列的安全規則進行校驗,只有滿足規則校驗的SQL,才能正常執行。

前提條件

系統角色為管理員DBA安全管理員

背景信息

數據管理DMS的安全規則具備非常靈活的DSL能力,可以根據業務需求自定義風險級別,讓不同風險的變更,走不同的審批流程。例如,您可以用最嚴格的形式限制SQL的執行,或者以最寬松的形式放行所有SQL。

SQL變更模塊檢測點

檢測點

說明

示例

基礎配置項

基礎配置項中包含5個默認規則:

  • 數據變更默認審批模板:數據變更類工單的默認審批模板ID為853,審批人為DBA。

    說明

    更改默認審批模板,請參見修改默認審批模板

  • 數據變更風險等級列表:風險等級可以對工單中的變更進行風險評估,您可以在不同場景中設置不同的風險等級和審批流程,主要用于風險識別規則風險審批規則檢測點。

    默認風險等級有四種:

    • LOW:低風險

    • MIDDLE:中風險

    • HIGH:高風險

    • HIGHEST:重大風險

  • 數據導入是否支持選擇極速模式:安全規則對應的數據庫在創建數據導入工單時是否支持極速模式。更多信息,請參見數據導入

  • 普通數據變更是否允許跳過影響行數校驗:如果開啟該規則,則在普通數據變更工單的預檢查階段,DMS禁止工單跳過行數校驗。反之允許跳過行數校驗。

  • 普通數據變更禁止行數校驗不一致的工單提交:如果開啟該規則,行數校驗不一致的普通數據變更工單將不允許被提交。反之允許提交工單。

-

SQL執行規則

用于限制在SQL窗口執行SQL語句,只有被允許的SQL語句才能通過SQL窗口執行。

說明

如果相互矛盾的兩個規則同時被啟用,系統會依照更嚴格的規則執行。

例如,以下兩條規則同時被啟用,系統將按第二種規則執行。

  • 允許所有DML在SQL控制臺直接執行。

  • 禁止所有DML在SQL控制臺直接執行,必須以工單方式執行。

僅允許DML語句對線上商品庫做出修改,可以增加如下SQL執行規則:

假設。

if
  @fac.env_type not in ['product']
  and
  @fac.sql_type in [ 'UPDATE','DELETE','INSERT']
then
  @act.allow_submit
end

代碼含義:如果數據庫環境為非線上生產環境,并且SQL語句是UPDATEDELETEINSERT類型,則允許執行該SQL語句。

風險識別規則

用于識別被提交工單的風險等級,您可以根據數據庫環境、SQL影響行數、SQL類型等條件自定義風險等級。

說明

不同的安全規則針對變更任務會標記不同的風險等級,最終取所有風險等級的最大值。

例如一個SQL變更任務有5個低風險、3個中風險和1個高風險,則最終該任務被認定為高風險。

將線下環境定義為低風險,可以增加如下風險識別規則:

if
  @fac.env_type not in ['product','pre']
then
  @act.mark_risk 'low' '低風險:線下環境'
end

代碼含義:如果數據庫環境為非線上生產環境,則風險等級為低風險。

風險審批規則

配置或自定義風險等級的審批規則。

如果數據庫在風險識別規則檢測點中未命中任何風險等級,那么數據庫將采用基礎配置項數據變更默認審批模板指定的審批流程。

測試環境默認為低風險等級,低風險默認無需審批。

批量數據導入規則

適用于數據導入工單的校驗規則。

允許批量導入插入語句。

修改默認審批模板

  1. 登錄數據管理DMS 5.0
  2. 單擊控制臺左上角的2023-01-28_15-57-17.png圖標,選擇全部功能 > 安全與規范(DBS) > 安全規則

    說明

    若您使用的是非極簡模式的控制臺,在頂部菜單欄中,選擇安全與規范(DBS) > 安全規則

  3. 安全規則頁簽中,單擊目標規則集操作列中的編輯

  4. 詳情頁面左側的導航欄中,單擊SQL變更模塊。

  5. SQL變更模塊中,單擊基礎配置項

  6. 數據變更默認審批模板操作列中,單擊編輯

  7. 編輯配置項對話框中,單擊切換審批模板

  8. 切換審批模板對話框中,單擊目標模板操作中的選擇,將默認審批模板切換為目標模板。

    說明

    如果工單不需要審批,您可以單擊重置為免審批,使工單自動跳過審批步驟。

  9. 單擊提交

SQL變更模塊因子和動作

因子

因子是系統內置變量,可用來獲取安全規則校驗的上下文信息,如獲取SQL類型、影響行數等。

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

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

表 1. 因子列表

因子

說明

@fac.env_type

環境類型,值為環境標識,如DEVPRODUCT。更多環境類型請參見實例環境說明

@fac.sql_type

SQL腳本的類型,如UPDATEINSERT。詳情請參見SQLConsole中對于SQL子類的描述。

@fac.detail_type

數據變更的種類:

  • COMMON:普通數據變更

  • CHUNK_DML:無鎖數據變更

  • PROCEDURE:存儲過程

  • CRON_CLEAR_DATA:定時清理表

  • BIG_FILE:批量數據導入

@fac.is_logic

是否為邏輯庫。

@fac.extra_info

其他變更信息(暫無用途)。

@fac.is_ignore_affect_rows

是否跳過校驗。

@fac.insert_rows

插入數據的影響行數。

@fac.update_delete_rows

更新數據的影響行數。

@fac.max_alter_table_size

修改表中,最大的表空間大小。

@fac.is_has_security_column

SQL腳本中是否包含敏感列。

@fac.security_column_list

SQL腳本中包含的敏感列列表。

@fac.risk_level

識別到的風險級別。

@fac.risk_reason

識別為該風險的原因。

@fac.table_name_list

SQL變更涉及的表名列表。使用示例如下:

if    
   'tb_order' in @fac.table_name_list or 'tb1_order' in @fac.table_name_list
then    
    @act.mark_risk 'high' '高風險:涉及訂單表變更'
end

代碼含義:若SQL變更涉及的表名為tb_order或tb1_order,則風險等級為高風險。

動作

動作是滿足if條件之后系統執行的行為,例如:禁止提交工單、選擇工作流、允許執行、拒絕執行等。

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

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

表 2. 動作列表

動作

說明

@act.allow_submit

允許提交工單執行。

@act.allow_execute_direct

允許直接在SQL控制臺執行。

@act.forbid_execute

禁止執行。

@act.mark_risk

標記風險。用法:@act.mark_risk 'middle' '中風險:線上環境'

@act.do_not_approve

指定審批模板ID。詳情請參見設置審批流程

@act.choose_approve_template

@act.choose_approve_template_with_reason