背景:一般MySQL審計可通過general_log記錄全量日誌,或者通過專門的審計插件,本文介紹通過performance_schema來實現輕量審計的功能。 具體方法 1、打開performance_schema(ps) 修改配置文件,添加參數:performance_schema = ON  ,啓用 Performance Schema,開啓ps需要重啓實例,同時一般對性能會有一定的影響。 2、查詢核心表 performance_schema.events_statements_history 該表記錄了正在連接中的每個線程對實例的全部操作,包括執行錯誤的語法,默認每個線程記錄最新的10條(由參數:performance_schema_events_statements_history_size控制),比如查詢當前實例中,每個線程記錄了多少SQL:

SELECT p.ID,p.USER,COUNT(es.EVENT_ID) AS sql_count FROM performance_schema.threads t JOIN information_schema.PROCESSLIST p ON t.PROCESSLIST_ID = p.ID LEFT JOIN performance_schema.events_statements_history es ON t.THREAD_ID = es.THREAD_ID GROUP BY p.USER ORDER BY sql_count DESC;

1.png 該內容存在內存中,線程退出後,相關記錄會自動清理。 3、內容記錄 以下均通過客户端登錄後執行命令操作,以更新SQL為例,版本為percona 8.0.35 1)一般操作內容 2.png 2)存儲過程內容 3.png 3)預處理內容 4.png