全部產品
Search
文件中心

:SQL審核

更新時間:Jun 30, 2024

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. 在頂部功能表列中,選擇資料庫開發 > SQL審核 > SQL審核工單

    說明

    若您使用的是極簡模式的控制台,請單擊控制台左上方的2023-01-28_15-57-17.png表徵圖,選擇全部功能 > 資料庫開發 > SQL審核 > SQL審核工單

  3. 在頁面右上方,單擊SQL審核
  4. 配置SQL審核工單參數。
    配置項說明
    專案名稱輸入專案名稱。
    資料庫選擇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語句,系統將在提交審批後報錯。

上傳檔案樣本