資料變更
本文介紹提交資料變更工單時常見的報錯及解決方案。
根據安全規則設定,禁止直接執行命令類型:XXXX或不允許提交類型為XXXX的變更語句
報錯樣本:
SQL類型檢查不通過,根據安全規則設定,禁止直接執行命令類型:XXXX,如果需要,請聯絡DBA或管理員調整!調整規則的入口路徑:安全與容災->安全規則->編輯->SQL變更->SQL執行規則,未匹配到該命令類型的任何規則,預設禁止執行
報錯原因:安全協同模式的資料庫綁定的安全規則不允許執行或提交該SQL命令,因此該命令會被攔截。
解決方案:禁止執行或不允許提交的SQL命令類型有非UNKNOW(DMS正常識別的SQL命令)和UNKNOW(DMS不能識別的SQL命令)兩種,您可按需選擇解決方案。
-
非UNKNOW
DMS可正常識別到非UNKNOW類型的命令,但當前的安全規則預設不允許該命令執行,請聯絡DBA或管理員,調整對應的安全規則。調整規則的具體操作如下。
-
查看安全規則集名稱。
進入資料變更工單詳情頁,單擊右上方的動作記錄,查看規則集名稱。在動作記錄彈窗的動作詳情列中,可查看關聯的安全規則集名稱,例如POC生產庫規則。
-
調整安全規則。
-
在頂部功能表列中,選擇。
-
在安全規則頁簽中,單擊目標規則集操作列下的編輯。
-
在左側導覽列中,單擊SQL變更。
-
根據報錯提示選擇檢測點。例如上述報錯樣本中檢測點需選擇SQL執行規則。
-
選擇待調整的安全規則,並單擊操作列下的編輯。
說明根據錯誤提示命令所屬的SQL語言類型選擇待調整的安全規則。例如,錯誤提示的命令類型為CREATE_INDEX,則需要選擇DDL相關的安全規則。
-
將報錯提示的SQL類型添加至對應安全規則的規則DSL中。
例:失敗原因提示禁止執行命令類型:CREATE_INDEX,您需要將該類型命令加入DDL提交工單的相關規則中。
在編輯規則彈窗中,檢測點選擇SQL執行規則,找到規則名稱為DDL必須提交工單執行的規則。在規則DSL的
@fac.sql_type判斷列表中,確認已包含CREATE_INDEX等DDL類型,對應動作為@act.allow_submit(允許該SQL類型產生工單執行),單擊提交。 -
單擊提交。
-
調整完成後,您需要在工單詳情頁的預檢查地區,單擊重試,DMS將會重新進行類型檢查。
-
-
UNKNOW
-
檢查您提交的SQL語句是否有誤。若有誤,請在預檢查地區單擊修改SQL,確認修改後再單擊重試,重新進行類型檢查。
-
若您提交的SQL無誤,請單擊預檢查地區的查看詳情,篩選並查看被標識為UNKNOW的SQL語句,再聯絡管理員或DBA將被標識的SQL語句添加至安全規則中,並允許該語句在DMS執行,提交完成後,再單擊重試。調整識別規則的操作步驟,請參見調整安全規則。
-
檢查影響行數失敗,語法檢查失敗
報錯樣本:
檢查影響行數失敗,語法檢查失敗,錯誤資訊:ERROR. pos 37,line 1,column 31,token WHERE
報錯原因:提交工單進行資料變更的預檢查階段,DMS會通過檢查掃描行數再次檢查SQL語句的文法是否有誤。
解決方案:檢查您提交的SQL語句的文法是否有誤。
-
若SQL文法有誤,請在修改SQL後,單擊預檢查地區的重試,DMS將重新檢查掃描行數。
-
在確保SQL文法無誤後,您可以單擊預檢查地區的檢查掃描行數右側的跳過,忽略該錯誤。