本文介紹如何在 OceanBase 控制臺設置實例的 SQL 防火墻。
背景信息
SQL 防火墻是一種專門設計用于保護數據庫安全的軟件系統,它通過監控和過濾進出數據庫的 SQL 語句,來防御 SQL 注入攻擊和其他針對數據庫的惡意活動。SQL 注入是一種常見的網絡攻擊手段,攻擊者通過在查詢語句中插入惡意 SQL 代碼,以此來欺騙數據庫執行非授權操作,如竊取數據、修改數據或破壞數據庫結構。
OceanBase 通過 SQL 防火墻規則的制定,可以實時監控并攔截數據庫 SQL,有效提升數據庫的安全能力,保護數據庫免受此類攻擊的影響。
前提條件
實例的數據庫代理版本在 V4.3.2 及以上。數據庫代理的相關說明,請參見 數據庫代理服務概述。
注意事項
開啟 SQL 防火墻之前,請詳細閱讀如下注意事項:
SQL 防火墻是熱加載生效,不需要重啟數據庫代理服務,對所有會話新啟動的事務實時生效。請謹慎操作,避免發生誤操作影響線上業務流量。
SQL 防火墻開啟后會對數據庫性能有 10 % 左右的影響。
管理 SQL 防火墻
登錄 OceanBase 控制臺。
在左側導航欄中,單擊 實例列表。
在實例列表中,單擊目標集群實例名稱進入 集群實例工作臺。
單擊左側導航欄的 安全設置。
單擊安全設置頁面的 SQL 防火墻 頁簽,查看當前已有的防火墻規則列表。
您可以對當前已有的 SQL 防火墻規則進行管理。
創建 SQL 防火墻規則
在 SQL 防火墻界面,單擊 創建規則。
在創建規則界面填寫規則配置。
參數
描述
規則名稱
為 SQL 防火墻規則設置的名稱,長度為 2~32,只能包含中文、數字、英文字母、下劃線、短橫線。
規則描述
為規則進行一個簡單的說明,以便后續查看使用。
租戶
在下拉框中選擇規則生效的租戶。
數據庫代理
選擇數據庫代理信息。
數據庫賬號
選擇規則生效的賬號,為空表示所有數據庫賬號均生效。
規則類型
攔截規則。
模式
檢驗模式:SQL 類型記錄,不真正攔截。
防護模式:攔截 SQL 并記錄。
防火墻規則
攔截特定類型的 SQL:攔截指定類型的 SQL ,可選擇 SELECT、UPDATE、INSERT、DELETE、CREATE、DROP、ALTER、TRUNCATE、RENAME、REPLACE。
攔截無 where 條件的 SQL:攔截指定類型中,未帶 where 條件的 SQL,可選擇 SELECT、UPDATE、DELETE。
攔截自定義 SQL:自定義需要攔截的 SQL 內容,示例如下。
攔截使用 ORDER BY 或者 GROUP BY 的 SQL:
ORDER\s+BY|GROUP\s+BY
啟用規則
勾選后,規則保存成功后立即生效。不勾選則保留規則配置,可后續進行編輯啟用。
單擊 確定。
啟用 SQL 防火墻規則
在 SQL 防火墻界面,單擊目標規則 操作 列的 編輯。
在編輯規則頁面的啟用規則下,勾選 啟用防火墻規則。
編輯 SQL 防火墻規則
在 SQL 防火墻界面,單擊目標規則 操作 列的 編輯。
在編輯規則頁面修改規則配置。
參數
描述
規則名稱
為 SQL 防火墻規則設置的名稱,長度為 2~32,只能包含中文、數字、英文字母、下劃線、短橫線。
規則描述
為規則進行一個簡單的說明,以便后續查看使用。
租戶
在下拉框中選擇規則生效的租戶。
數據庫代理
選擇數據庫代理信息。
數據庫賬號
選擇規則生效的賬號,為空表示所有數據庫賬號均生效。
規則類型
攔截規則。
模式
檢驗模式:SQL 類型記錄,不真正攔截。
防護模式:攔截 SQL 并記錄。
防火墻規則
攔截特定類型的 SQL:攔截指定類型的 SQL ,可選擇 SELECT、UPDATE、INSERT、DELETE、CREATE、DROP、ALTER、TRUNCATE、RENAME、REPLACE。
攔截無 where 條件的 SQL:攔截指定類型中,未帶 where 條件的 SQL,可選擇 SELECT、UPDATE、DELETE。
攔截自定義 SQL:自定義需要攔截的 SQL 內容,示例如下。
攔截使用 ORDER BY 或者 GROUP BY 的 SQL:
ORDER\s+BY|GROUP\s+BY
啟用規則
勾選后,規則保存成功后立即生效。不勾選則保留規則配置,可后續進行編輯啟用。
單擊 確定。
刪除 SQL 防火墻規則
在 SQL 防火墻界面,單擊目標規則 操作 列的 刪除。
在彈窗中確認刪除信息。
單擊 刪除。