前提條件
2024年1月18號后新開通的關系數據庫MySQL版實例才支持SQL攔截功能。
實例狀態為運行中 。
說明
- SQL攔截功能因資源池上線時間不一致,所以會出現個別數據庫實例不支持SQL攔截功能,具體以頁面返回為準。
- SQL攔截功能主要針對表數據查詢/變更類型的sql進行按規則攔截,對于show database、show tables...等非表數據查詢/變更,規則添加正常,但不會攔截此類語句。
規則是否能夠成功添加以查詢到的結果為準,由于MySQL中SQL解析影響,盡量不要在攔截規則中的變量添加控制字符。
攔截規則中的變量是指可被替換的部分,例如 INSERT INTO TABLE_NAME VALUES ("???"),其中???就是變量。如果在變量中添加控制字符,可能造成添加規則失效。
操作步驟
SQL攔截語句操作
添加攔截規則
在天翼云官網首頁的頂部菜單欄,選擇產品 > 數據庫 > 關系型數據庫 > 關系數據庫MySQL版,進入關系數據庫MySQL產品頁面。然后單擊管理控制臺,進入概覽頁面。
在左側導航欄,選擇MySQL > 實例管理,進入實例列表頁面。然后在頂部菜單欄,選擇區域和項目。
在實例列表中,單擊目標實例名稱,進入實例基本信息頁面。
單擊SQL攔截,進入攔截日志頁簽。
單擊攔截規則頁簽。
在SQL語句輸入框中,輸入您需要攔截的SQL語句,然后單擊設置攔截。
已添加的攔截規則將顯示在SQL攔截語句列表中,并對該語句進行攔截。
刪除攔截規則
在天翼云官網首頁的頂部菜單欄,選擇產品 > 數據庫 > 關系型數據庫 > 關系數據庫MySQL版,進入關系數據庫MySQL產品頁面。然后單擊管理控制臺,進入概覽頁面。
在左側導航欄,選擇MySQL > 實例管理,進入實例列表頁面。然后在頂部菜單欄,選擇區域和項目。
在實例列表中,單擊目標實例名稱,進入實例基本信息頁面。
單擊SQL攔截,進入攔截日志頁簽。
單擊攔截規則頁簽。
在SQL攔截語句列表中,找到目標語句,單擊操作列的刪除。
如果您需要批量刪除語句,您可以勾選多條目標語句,然后單擊列表上方的批量刪除,即可進行批量刪除操作。
SQL攔截日志查詢
注意
攔截日志非實時采集,以采集任務實際執行時間為準。
在天翼云官網首頁的頂部菜單欄,選擇產品 > 數據庫 > 關系型數據庫 > 關系數據庫MySQL版,進入關系數據庫MySQL產品頁面。然后單擊管理控制臺,進入概覽頁面。
在左側導航欄,選擇MySQL > 實例管理,進入實例列表頁面。然后在頂部菜單欄,選擇區域和項目。
在實例列表中,單擊目標實例名稱,進入實例基本信息頁面。
單擊SQL攔截,進入攔截日志頁簽。
在日志列表中,查看已經被攔截的SQL日志。
您可以查看數據庫名、SQL語句、用戶名等信息。
注意
SQL攔截日志采集頻率為每小時,如果執行遷移可用區會導致該時間段的日志丟失。
針對SQL攔截規則只讀實例和主實例默認保持一致,因此請您妥善設置攔截規則。
升級數據庫版本后,您在低版本中的攔截規則將清空,因此請妥善保存您在低版本中使用的攔截規則。
SQL攔截使用示例
例如您有db1、db2兩個庫,db1下有兩個表aa、bb;db2下有兩個表aa、cc。
如果db1和db2庫下的兩個aa表作為非常重要的表,禁止用戶誤刪除,則寫明攔截語句為:
drop table db1.aa;
TRUNCATE TABLE db1.aa;
drop table db2.aa;
TRUNCATE TABLE db2.aa;
注意:不能通過以下語句進行通配,必須指定庫名。
drop table aa;(錯誤示例)
TRUNCATE TABLE aa;(錯誤示例)
SQL攔截規則應用至其他實例
如果您有多個實例,且需要用到同一套攔截規則,可以在關系數據庫MySQL版管理控制臺使用SQL攔截規則應用至其他實例的功能。
在天翼云官網首頁的頂部菜單欄,選擇產品 > 數據庫 > 關系型數據庫 > 關系數據庫MySQL版,進入關系數據庫MySQL產品頁面。然后單擊管理控制臺,進入概覽頁面。
在左側導航欄,選擇MySQL > 實例管理,進入實例列表頁面。然后在頂部菜單欄,選擇區域和項目。
在實例列表中,單擊目標實例名稱,進入實例基本信息頁面。
單擊SQL攔截,進入攔截日志頁簽。
單擊攔截規則頁簽。
在SQL攔截語句列表中,找到需要應用到其他實例的攔截規則語句,然后單擊列表上方的批量應用。
在SQL攔截規則對話框中,選擇想要應用到的實例,然后單擊確定。