audit plugin 記錄使用者操作資訊

2021-08-25 23:51:58 字數 994 閱讀 4713

mysql5.5的audit審計功能是被自動觸發的,在檔案plugin_audit.h中可以看到比較詳細的定義

在audit外掛程式中,可控制的變數包括thd以及事件

其中事件分為兩種結構體,可以進行強制轉換:

第一種:

48 struct mysql_event_general 49 ;

觸發條件:

#define mysql_audit_general_log 0

在提交給general query log之前被觸發

#define mysql_audit_general_error 1

在傳送給使用者錯誤之前觸發

#define mysql_audit_general_result 2

當將結果集合傳送給使用者後觸發

#define mysql_audit_general_status 3

當傳送乙個結果集或發生錯誤時被觸發

第二種:

79 struct mysql_event_connection 80 ;

觸發條件:

#define mysql_audit_connection_connect 0

完成認證後觸發

#define mysql_audit_connection_disconnect 1

連線被中斷時觸發

#define mysql_audit_connection_change_user 2

在執行com_change_user命令後觸發

從上面的分析,我們可以看出,在event中儲存了相當豐富的資訊,將notify函式進行了如下簡單的修改:

91 static void audit_null_notify(mysql_thd thd __attribute__((unused)), 92 unsigned int event_class, 93 const void *event) 94 116 } 117 }

這樣,我們實現了記錄使用者名稱、使用者主機資訊以及sql操作等相關資訊

跟蹤記錄使用者

1 標記承載使用者身份的http請求首部 form 存放email user agent 監聽瀏覽器 3 使用者登入 4 胖url,開始進入 的時候,會生成乙個標識,加在每個a標籤上,當訪問此網頁的所有鏈結時,伺服器識別出標識知 道還是這個客戶,1缺點 1.不美觀,2.對伺服器生產額外複雜 3.不能...

記錄使用者操作

在最近工作中,博主手頭上的web專案提了乙個新的需求,這個需求大體上就是希望系統能夠記錄使用者做了哪些操作,包括這些操作的細節。大家都知道,使用者的操作無非就是增,刪,改,查。因為我現在做的這個專案對使用者的查詢操作不敏感,所以只需記錄增,刪,改。在做之前呢,我的leader給了我乙個建議 你要不寫...

記錄使用者登入日誌

我們可以在專案中,實現使用者登入日誌記錄。簡單實現方法,如下 在資料中建立一張表,儲存一些相關的資訊。setansi nulls ongo setquoted identifier ongo create table dbo loginlog loginlogid int identity 1 1 ...