本文介紹如何在 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 防火牆介面,單擊目標規則 操作 列的 刪除。

在彈窗中確認刪除資訊。

單擊 刪除。