全部產品
Search
文件中心

Data Management:SQL審核

更新時間:Jan 11, 2025

Data Management的SQL審核功能,支援對上傳的SQL語句進行審核並提供最佳化建議,避免無索引或不規範的SQL語句,降低SQL注入風險。

前提條件

資料庫類型如下:

  • RDS MySQLPolarDB MySQL版AnalyticDB for MySQL、其他來源MySQL。

  • RDS MariaDB

  • PolarDB分布式版

  • Oracle。

  • PolarDB PostgreSQL版(相容Oracle)

  • OceanBase。

背景資訊

專案研發過程中,需要通過資料庫的增、刪、改、查等SQL操作來完成商務邏輯的處理及頁面資料的展現。而在專案正式發布到線上之前,需要對涉及的SQL進行全面的審核,避免不符合資料庫開發規範的SQL發布到線上影響生產服務。例如如下建表語句未增加主鍵、未添加表格備忘且未對欄位增加備忘資訊:

CREATE TABLE `test_sql_review_table` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `gmt_create` datetime NOT NULL,
  `name` varchar(256) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

若所有SQL都由DBA逐一進行人工審核,人力資源消耗過大,也容易降低研發效率。

現DMS推出的SQL審核功能將結合安全規則的SQL審核最佳化建議,對SQL進行審核並提供最佳化建議,您可以在安全規則中自訂SQL規範,例如表要有主鍵、限制主鍵列類型及限制主鍵包含列的個數等,更多資訊,請參見配置SQL審核最佳化建議

操作步驟

  1. 登入Data Management 5.0
  2. 單擊控制台左上方的2023-01-28_15-57-17.png表徵圖,選擇全部功能 > 資料庫開發 > SQL審核 > SQL審核工單

    說明

    若您使用的是非極簡模式的控制台,在頂部功能表列中,選擇資料庫開發 > SQL審核 > SQL審核工單

  3. 在頁面右上方,單擊SQL審核

  4. 配置SQL審核工單參數。

    配置項

    說明

    專案名稱

    輸入專案名稱。

    資料庫

    選擇目標資料庫。

    說明
    • 您可直接輸入資料庫名稱或輸入%+庫名搜尋該資料庫。

    • 您需要有該庫的查詢許可權,更多資訊,請參見查看我的許可權

    業務背景

    詳細描述提交工單的原因或目標,減少溝通成本。

    變更相關人

    設定的相關人員都可查看工單,並協同工作,非相關人員則不能查看工單(管理員、DBA除外)。

    上傳檔案

    您可選擇以下兩種方式上傳檔案,取值:

    • 上傳:支援上傳多個SQL檔案。

    • 輸入文本:支援輸入iBatis架構或MyBatis架構的.xml檔案和.txt格式的SQL檔案。

    更多資訊,請參見上傳檔案樣本

  5. 單擊提交申請

    系統將對SQL檔案進行解析,並根據當前資料庫的安全規則,對SQL語句進行逐條審核,返回的SQL審核最佳化結果包含必須改進潛在問題建議改進索引推薦。更多資訊,請參見配置SQL審核最佳化建議

  6. 查看SQL審核結果。

    系統將提供如下六種SQL審核檢測狀態:

    狀態

    說明

    動作

    檢測通過

    該語句不存在必須改進項,但可能存在潛在問題建議改進項。

    您可以單擊詳情,查看SQL語句與對應的SQL建議。

    若需要調整SQL語句,您可以單擊調整SQL,調整SQL語句。

    檢測不通過

    該語句存在必須改進項。

    請單擊詳情查看SQL建議,並單擊調整SQL,調整SQL語句。

    人工通過/人工不通過

    除DMS審核SQL以外,若存在一些歷史問題暫時無法修複或無需修複。

    您可以選擇人工審核 > 人工通過人工不通過,手動標註檢測結果。

    解析異常

    DMS無法識別的SQL語句。

    請單擊調整SQL,調整SQL語句,並重新提交審核。

    等待分析

    DMS未開始識別SQL語句。

  7. 單擊提交審批,管理員或DBA將再次確認SQL。

    審批通過後即工單流程結束。

    說明

    若存在檢測不通過解析異常狀態的SQL語句,系統將在提交審批後報錯。

上傳檔案樣本