資料庫自治服務DAS提供搜尋(審計)功能,查詢並匯出SQL語句對應的各種資訊,本文介紹如何在SQL洞察和審計中使用搜尋功能。
如果您開通了DAS企業版 V3,搜尋功能將更名為審計功能。
前提條件
已在DAS中接入對應的資料庫執行個體,並且接入狀態顯示為接入正常。
執行個體已開啟SQL洞察和審計,詳情請參見開啟SQL洞察和審計。
通過RAM使用者使用搜尋功能時,需要為RAM使用者授予AliyunHDMReadOnlyWithSQLLogArchiveAccess許可權,詳情請參見通過系統權限原則授權子帳號。
說明您也可以通過自訂權限原則授予RAM使用者使用搜尋(包含匯出)功能的許可權,詳情請參見通過自訂權限原則授權RAM使用者使用SQL洞察和審計的搜尋(包含匯出)功能。
注意事項
日誌列表中SQL語句的狀態為成功時,只表示該條SQL執行成功且沒有異常。例如,發生交易回復時,事務中的單條SQL執行成功且沒有異常,那麼日誌列表中該條SQL的狀態會標識為成功。
對於RDS MySQL和PolarDB MySQL版執行個體,由於串連可能會被複用,所以日誌列表中顯示的IP地址和連接埠,可能會與用戶端實際的IP地址和連接埠不一致。詳情請參見RDS MySQL的串連池或PolarDB MySQL版的串連池。
SQL日誌中記錄的SQL語句最大長度為8192位元組,超過部分不再記錄。其中RDS MySQL和PolarDB MySQL版執行個體記錄的SQL語句最大長度受參數控制:
當參數取值小於等於8192位元組時,SQL語句最大長度為參數設定值,超過部分不再記錄。由於資訊採集處理時會增加首碼標註,實際記錄的SQL語句最大長度略小於參數設定值。
當參數取值大於8192位元組時,SQL語句最大長度為8192位元組,超過部分不再記錄。由於資訊採集處理時會增加首碼標註,實際記錄的SQL語句最大長度略小於8192位元組。
說明RDS MySQL和PolarDB MySQL版的5.6、5.7版本由loose_rds_audit_max_sql_size參數控制記錄長度。
RDS MySQL和PolarDB MySQL版的8.0版本由loose_rds_audit_log_event_buffer_size參數控制記錄長度。
開啟高級查詢時,當資料庫執行個體的版本滿足如下要求時,支援使用事務ID進行查詢。
RDS MySQL的大版本為8.0且小版本大於等於20210311,並且查詢前需將loose_rds_audit_log_version參數值設為MYSQL_V3。詳見RDS MySQL 8.0開放參數一覽表。
PolarDB MySQL版的版本大於等於8.0.1.1.15。
操作步驟
登入DAS控制台。
在左側導覽列中,單擊執行個體監控。
找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。
在左側導覽列單擊SQL洞察和審計,然後在右側開啟的頁面單擊搜索,設定如下參數作為查詢條件。
如果您開通了DAS企業版 V3,請在右側開啟的頁面單擊審計。
參數
說明
時間範圍
根據實際需要選取查詢的時間範圍。
線上查詢時間範圍最多為24小時,您可以在資料庫執行個體SQL資料存放區時間長度範圍內設定任意的查詢開始時間,查看最多24小時的資料。這是因為SQL洞察記錄所有資料庫行為,會記錄大量SQL語句,線上查詢選擇時間範圍過大,會導致長時間沒有返回查詢結果,甚至查詢逾時。
說明只能查詢開啟DAS企業版後且在SQL資料存放區時間長度範圍內的資料。
如果需要查詢更大時間範圍的SQL記錄,請您匯出後進行查詢。匯出功能會非同步匯出日誌,適合大時間範圍內的查詢。
當SQL洞察和審計的資料採用冷熱混合儲存時,當前只支援查詢和匯出最多24小時的資料。
關鍵字
可多欄位組合查詢,不支援模糊查詢,欄位間以空格分隔。
說明查詢的關鍵字至少包含4個字元。
使用者
使用者名稱,可組合查詢,如:user1 user2 user3。
資料庫
可組合查詢,如:DB1 DB2 DB3。
操作類型
選擇需要查詢的操作類型,可多選。
說明您可開啟高級查詢輸入更多資訊以縮小搜尋範圍。
單擊查詢,即可看到日誌列表中SQL語句的具體資訊。
您可單擊匯出,勾選需要的匯出欄位來匯出SQL記錄。通過設定匯出時間範圍來匯出更大時間範圍的SQL記錄。
對於採用冷熱混合儲存的SQL洞察和審計,匯出資料時,請選擇SQL日誌中不包含的CSV分隔字元,並參見設定並開啟匯出的CSV檔案,使匯出資料可以分列顯示。
重要單次最多可匯出1000萬條資料。
對於採用冷熱混合儲存的SQL洞察和審計,查詢或匯出冷儲存的資料時,系統會建立對應的查詢或匯出任務,您可以在工作清單頁面,查看任務進度及歷史任務。
設定並開啟匯出的CSV檔案
當匯出的SQL日誌包含資料分隔字元時,使用Excel等工具開啟CSV檔案時可能會出現資料沒有分列顯示的現象。為了避免該問題,採用冷熱混合儲存的搜尋功能在匯出CSV檔案時,增加了可供選擇的CSV分隔字元。本文以Windows系統下的Excel 2019版為例,介紹如何設定CSV檔案,使匯出資料可以分列顯示。
建立匯出任務時,在提示介面,選擇SQL日誌中不包含的分隔字元,例如
$
。使用Excel工具開啟匯出的CSV檔案。
選中需要分列顯示的資料,在Excel工具列中選擇資料 > 分列。
在文本分列嚮導的未經處理資料類型地區,選擇分隔字元號,單擊下一步。
在分隔字元號地區,選擇其他並輸入
$
,單擊下一步。在資料預覽地區,可預覽分列的效果。
在列資料格式地區,選擇常規,單擊完成。
常見問題
相關API
對於RDS MySQL、RDS PostgreSQL和RDS SQL Server資料庫執行個體,可以使用如下API介面查詢SQL日誌:
API | 描述 |
查詢RDS執行個體的SQL洞察(SQL審計)日誌。 | |
查詢SQL洞察(SQL審計)匯出檔案清單。 |