Data Management的SQL審核功能,支援對上傳的SQL語句進行審核並提供最佳化建議,避免無索引或不規範的SQL語句,降低SQL注入風險。
前提條件
資料庫類型如下:- RDS MySQL、PolarDB 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審核最佳化建議。
操作步驟
- 登入Data Management 5.0。
在頂部功能表列中,選擇 。
說明若您使用的是極簡模式的控制台,請單擊控制台左上方的表徵圖,選擇
。- 在頁面右上方,單擊SQL審核。
- 配置SQL審核工單參數。
- 單擊提交申請。系統將對SQL檔案進行解析,並根據當前資料庫的安全規則,對SQL語句進行逐條審核,返回的SQL審核最佳化結果包含必須改進、潛在問題、建議改進及索引推薦。更多資訊,請參見配置SQL審核最佳化建議。
- 查看SQL審核結果。
系統將提供如下六種SQL審核檢測狀態:
狀態 說明 動作 檢測通過 該語句不存在必須改進項,但可能存在潛在問題或建議改進項。 您可以單擊詳情,查看SQL語句與對應的SQL建議。 若需要調整SQL語句,您可以單擊調整SQL,調整SQL語句。
檢測不通過 該語句存在必須改進項。 請單擊詳情查看SQL建議,並單擊調整SQL,調整SQL語句。 人工通過/人工不通過 除DMS審核SQL以外,若存在一些歷史問題暫時無法修複或無需修複。 您可以選擇 或人工不通過,手動標註檢測結果。解析異常 DMS無法識別的SQL語句。 請單擊調整SQL,調整SQL語句,並重新提交審核。 等待分析 DMS未開始識別SQL語句。 無 - 單擊提交審批,管理員或DBA將再次確認SQL。審批通過後即工單流程結束。說明 若存在檢測不通過或解析異常狀態的SQL語句,系統將在提交審批後報錯。