Lindorm審計日志功能提供了SQL操作日志,您可以通過審計日志查看一段時間內的SQL操作記錄,還可以使用各種過濾條件對查詢到的記錄進行篩選。
前提條件
審計日志類型
Lindorm審計日志記錄了以下SQL操作:
DDL:包括CREATE DATABASE、CREATE TABLE、ALTER TABLE、DROP TABLE等。
DML:包括INSERT、UPSERT、DELETE、UPDATE等。
DQL:包括SELECT等。
DCL:包括GRANT、REVOKE等。
通常情況下,DML和DQL操作較多,記錄此類審計日志可能會影響實例的性能和穩定性。因此,寬表引擎默認僅記錄DDL和DCL類型的SQL審計日志。如需開啟DML和DQL審計日志,可以通過系統變量AUDIT_LEVEL來調整審計日志的級別。詳細操作,請參見修改審計日志級別。
日志保留時長
Lindorm審計日志默認的保存時間為180天。當日志保存時間達到數據保存時間后,日志將被刪除。
修改審計日志的保存時間,請參見如何刪除日志?。
查看審計日志
登錄Lindorm管理控制臺。
在頁面左上角,選擇實例所屬的地域。
在實例列表頁,單擊目標實例ID或者目標實例所在行操作列的管理。
在左側導航欄,選擇
,查看Lindorm寬表的審計日志詳情。說明默認顯示最近15分鐘內的日志詳情,您也可以根據需求修改需要查詢的時間段。
(可選)在原始日志頁簽下,單擊目標索引字段,可根據該字段篩選日志。
審計字段說明
字段名 | 說明 |
instance_id | Lindorm實例ID。 |
reqId | 請求ID,用于標識該操作審計記錄的唯一標識符。 |
user | 該操作審計記錄對應的用戶名。 |
fail | SQL語句是否執行成功。 |
reason | 該操作審計記錄對應的錯誤信息,僅當該操作出現錯誤時才會記錄該信息。 |
connectionId | 用戶所在連接的標識符。 |
protocol | 客戶端協議類型,Avatica或MySQL。 |
db | 當前選擇的數據庫名。 |
sql | 執行的SQL語句。 |
sqlType | SQL類型。包括 |
params | 傳入執行SQL語句的參數,多個參數使用半角逗號(,)分割,用于綁定參數的查詢場景。 |
sqlTime | SQL開始執行的時間。 |
responseTime | 響應時間。單位:毫秒(ms)。 |
checkRows | 掃描的行數,表示查詢時從數據存儲引擎返回的行數。 |
affectRows | SQL執行返回的行數。如果是增刪改操作,affectRows表示影響的行數。如果是查詢語句,affectRows表示返回的行數。 |
dbVersion | 當前連接的服務端SQL版本。 |
hostname | 服務端節點主機名。 |
clientIp | 客戶端IP地址。 |
clientPort | 客戶端端口。 |
修改審計日志級別
您可以通過ALTER SYSTEM
語句修改AUDIT_LEVEL參數的值,調整審計日志的輸出級別。
AUDIT_LEVEL參數取值如下:
0:輸出DDL和DCL日志。
1:輸出DDL、DCL、DML日志。
2:輸出DDL、DCL、DQL日志。
3:輸出DDL、DCL、DML、DQL日志。
示例
修改審計日志級別,輸出DDL、DCL和DQL日志。
ALTER SYSTEM SET AUDIT_LEVEL = 2;
結果驗證
您可以執行SHOW SYSTEM VARIABLES LIKE 'AUDIT_LEVEL';
語句查看是否修改成功。
更多關于系統變量的使用說明,請參見ALTER SYSTEM。