數(shù)據(jù)管理DMS的SQL審核功能,支持對上傳的SQL語句進行審核并提供優(yōu)化建議,避免無索引或不規(guī)范的SQL語句,降低SQL注入風險。
前提條件
數(shù)據(jù)庫類型如下:- RDS MySQL、PolarDB MySQL版、AnalyticDB MySQL版、其他來源MySQL。
- RDS MariaDB。
- PolarDB分布式版。
- Oracle。
- PolarDB PostgreSQL版(兼容Oracle)。
- OceanBase。
背景信息
項目研發(fā)過程中,需要通過數(shù)據(jù)庫的增、刪、改、查等SQL操作來完成業(yè)務邏輯的處理及頁面數(shù)據(jù)的展現(xiàn)。而在項目正式發(fā)布到線上之前,需要對涉及的SQL進行全面的審核,避免不符合數(shù)據(jù)庫開發(fā)規(guī)范的SQL發(fā)布到線上影響生產(chǎn)服務。例如如下建表語句未增加主鍵、未添加表格備注且未對字段增加備注信息:
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逐一進行人工審核,人力資源消耗過大,也容易降低研發(fā)效率。
現(xiàn)DMS推出的SQL審核功能將結合安全規(guī)則的SQL審核優(yōu)化建議,對SQL進行審核并提供優(yōu)化建議,您可以在安全規(guī)則中自定義SQL規(guī)范,例如表要有主鍵、限制主鍵列類型及限制主鍵包含列的個數(shù)等,更多信息,請參見配置SQL審核優(yōu)化建議。
操作步驟
- 登錄數(shù)據(jù)管理DMS 5.0。
- 在頂部菜單欄中,選擇 。
- 在頁面右上角,單擊SQL審核。
- 配置SQL審核工單參數(shù)。
- 單擊提交申請。系統(tǒng)將對SQL文件進行解析,并根據(jù)當前數(shù)據(jù)庫的安全規(guī)則,對SQL語句進行逐條審核,返回的SQL審核優(yōu)化結果包含必須改進、潛在問題、建議改進及索引推薦。更多信息,請參見配置SQL審核優(yōu)化建議。
- 查看SQL審核結果。
系統(tǒng)將提供如下六種SQL審核檢測狀態(tài):
狀態(tài) 說明 動作 檢測通過 該語句不存在必須改進項,但可能存在潛在問題或建議改進項。 您可以單擊詳情,查看SQL語句與對應的SQL建議。 若需要調整SQL語句,您可以單擊調整SQL,調整SQL語句。
檢測不通過 該語句存在必須改進項。 請單擊詳情查看SQL建議,并單擊調整SQL,調整SQL語句。 人工通過/人工不通過 除DMS審核SQL以外,若存在一些歷史問題暫時無法修復或無需修復。 您可以選擇人工不通過,手動標注檢測結果。 或解析異常 DMS無法識別的SQL語句。 請單擊調整SQL,調整SQL語句,并重新提交審核。 等待分析 DMS未開始識別SQL語句。 無 - 單擊提交審批,管理員或DBA將再次確認SQL。審批通過后即工單流程結束。說明 若存在檢測不通過或解析異常狀態(tài)的SQL語句,系統(tǒng)將在提交審批后報錯。