SQL攔截
更新時間 2025-04-02 18:33:44
最近更新時間: 2025-04-02 18:33:44
分享文章
如果您需要對敏感SQL進行攔截,避免因高風險操作導致數據庫故障,建議您開啟SQL攔截功能并添加相關攔截SQL語句。本文介紹關系數據庫PostgreSQL版的SQL攔截功能。
前提條件
- 實例內核版本需要為以下版本或者更新的版本:12.20_P3,13.16_P3,14.13_P3,15.8_P4。
- 實例狀態為運行中。
說明
目前一個攔截規則只能作用于指定用戶和指定數據庫,例如:用戶A在數據庫C中添加了攔截規則:SELECT id,name FROM sql_rule,若用戶B在數據庫C進行相同的sql查詢,攔截規則不生效;同理,用戶A在數據庫C1進行相同的sql查詢,攔截規則也不生效。用戶A在數據庫C中進行相同的查詢攔截規則會生效。
攔截規則會對查詢條件進行參數化,例如:SELECT id,name FROM sql_rule WHERE name = 'rule'會被參數化成SELECT id,name FROM sql_rule WHERE name = $1,因此,無論查詢條件的傳值是什么,只要是執行類似這個規則的sql都會被攔截。
攔截統計會一直保留,不會隨著攔截規則刪除而被刪除。
操作步驟
創建攔截規則
- 登錄天翼云官網。
- 點擊控制中心,進入控制中心后,選擇目標資源池。
- 在產品列表頁面中找到【數據庫】→【關系數據庫PostgreSQL版】,點擊進入控制臺。
- 在左側菜單中點擊【PostgreSQL】→【實例管理】,點擊進入產品實例管理頁。
- 在【實例管理】的實例列表中選擇目標實例,點擊指定的實例,進入單個實例管理詳情頁。
- 在左邊的tab頁點擊【SQL攔截】,進入【SQL攔截】頁面。
- 點擊【攔截規則】tab頁,然后點擊【創建攔截規則】按鈕。
- 在彈出的窗口中,選擇“用戶”和“需要攔截的sql“,點擊【analyze】,對sql進行分析,最后點擊確定,攔截規則創建完成。
刪除攔截規則
- 登錄天翼云官網。
- 點擊控制中心,進入控制中心后,選擇目標資源池。
- 在產品列表頁面中找到【數據庫】→【關系數據庫PostgreSQL版】,點擊進入控制臺。
- 在左側菜單中點擊【PostgreSQL】→【實例管理】,點擊進入產品實例管理頁。
- 在【實例管理】的實例列表中選擇目標實例,點擊指定的實例,進入單個實例管理詳情頁。
- 在左邊的tab頁點擊【SQL攔截】,進入【SQL攔截】頁面。
- 點擊【攔截規則】tab頁,在攔截規則列表的右側,點擊【刪除】按鈕。
- 在彈出的窗口中,點擊【確定】,刪除攔截規則完成。
說明也可以通過【批量刪除】功能進行批量刪除攔截規則。
編輯攔截規則
- 登錄天翼云官網。
- 點擊控制中心,進入控制中心后,選擇目標資源池。
- 在產品列表頁面中找到【數據庫】→【關系數據庫PostgreSQL版】,點擊進入控制臺。
- 在左側菜單中點擊【PostgreSQL】→【實例管理】,點擊進入產品實例管理頁。
- 在【實例管理】的實例列表中選擇目標實例,點擊指定的實例,進入單個實例管理詳情頁。
- 在左邊的tab頁點擊【SQL攔截】,進入【SQL攔截】頁面。
- 點擊【攔截規則】tab頁,在攔截規則列表的右側,點擊【編輯】按鈕。
- 在彈出的窗口中,選擇“用戶”和“需要攔截的sql“,點擊【analyze】,對sql進行分析,最后點擊確定,攔截規則修改完成。