MySQL審計插件MariaDB Audit Plugin學習總結

来源:https://www.cnblogs.com/kerrycode/archive/2020/05/26/12966190.html
-Advertisement-
Play Games

MySQL的社區版沒有審計功能,企業版才有審計功能。企業版中自帶 Audit Plugin ,名為audit_log.so。但是其它MySQL分支版本也開發了各自的審計功能插件。最常見的就是Percona Audit Log Plugin、MariaDB Audit Plugin、當然還有通用插件M... ...


MySQL的社區版沒有審計功能,企業版才有審計功能。企業版中自帶 Audit Plugin ,名為audit_log.so。但是其它MySQL分支版本也開發了各自的審計功能插件。最常見的就是Percona Audit Log Plugin、MariaDB Audit Plugin、當然還有通用插件McAfee MySQL Audit Plugin。 如果MySQL社區版想上審計功能的話,能否使用這三個插件呢?答案是社區版MySQL可以使用MariaDB Audit Plugin和McAfee MySQL Audit Plugin,Percona Audit Log Plugin是僅供Percona Server使用的免費插件,下麵我們來學習、總結一下,在MySQL社區版中如何使用MariaDB Audit Plugin插件來做資料庫的跟蹤、審計。

 

插件介紹

 

下麵是官方網址關於MariaDB Audit Plugin的介紹,更多資料請參考https://mariadb.com/kb/en/mariadb-audit-plugin/

MariaDB and MySQL are used in a broad range of environments, but if you needed to record user access to be in compliance with auditing regulations for your organization, you would previously have had to use other database solutions. To meet this need, though, MariaDB has developed the MariaDB Audit Plugin. Although the MariaDB Audit Plugin has some unique features available only for MariaDB, it can be used also with MySQL.

Basically, the purpose of the MariaDB Audit Plugin is to log the server's activity. For each client session, it records who connected to the server (i.e., user name and host), what queries were executed, and which tables were accessed and server variables that were changed. This information is stored in a rotating log file or it may be sent to the local syslogd.

The MariaDB Audit Plugin works with MariaDB, MySQL (as of, version 5.5.34 and 10.0.7) and Percona Server. MariaDB started including by default the Audit Plugin from versions 10.0.10 and 5.5.37, and it can be installed in any version from MariaDB 5.5.20.

 

 

插件下載

  目前而言,官方並沒有提供單獨MariaDB Audit Plugin下載地址,所以你必須下載MariaDB的安裝包,然後從安裝包中找到插件的文件。

 

官方下載地址:

 

    https://downloads.mariadb.org/mariadb/+releases/

 

這裡我們下載mariadb-5.5.64-linux-systemd-x86_64.tar.gz測試驗證一下。插件server_audit.so一般位於目錄./lib/plugin下麵。

 

 

 

插件安裝

 

 

MySQL的插件必須放在plugin_dir目錄下麵,所以首先查看當前社區版本MySQL的系統變數plugin_dir(插件路徑)

 

mysql> select version() from dual;
+------------+
| version()  |
+------------+
| 5.7.21-log |
+------------+
1 row in set (0.00 sec)
 
mysql> show variables like 'plugin_dir';
+---------------+--------------------------+
| Variable_name | Value                    |
+---------------+--------------------------+
| plugin_dir    | /usr/lib64/mysql/plugin/ |
+---------------+--------------------------+
1 row in set (0.01 sec)
 
mysql> 

 

將server_audit.so文件拷貝到系統變數plugin_dir對應的目錄下麵。

 

# cd /tmp
# tar -xzvf mariadb-5.5.64-linux-systemd-x86_64.tar.gz 
# cd mariadb-5.5.64-linux-systemd-x86_64
# find ./ -name "server_audit.so"
./lib/plugin/server_audit.so
 
# cp /tmp/mariadb-5.5.64-linux-systemd-x86_64/lib/plugin/server_audit.so /usr/lib64/mysql/plugin/
# chmod +x server_audit.so 

 

 

在安裝MySQL插件MariaDB Audit Plugin前,先確認系統glibc版本是否匹配編譯server_audit.so的glibc版本。MariaDB一般多使用2.14版glibc進行編譯。如果沒有2.14版本的glibc,很有可能出現下麵錯誤,如下所示: 

 

# strings /lib64/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_PRIVATE
 
mysql> INSTALL PLUGIN server_audit SONAME 'server_audit.so';
ERROR 1126 (HY000): Can't open shared library '/usr/lib64/mysql/plugin/server_audit.so' (errno: 2 /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/mysql/plugin/server_audit.so))
mysql>

 

 

安裝glibc2.14,簡單步驟如下,安裝glibc2.14可能會遇到一些問題,此篇不做展開講述。

 

# wget -c http://ftp.gnu.org/gnu/libc/glibc-2.14.tar.gz
# tar -zxvf glibc-2.14.tar.gz 
# cd glibc-2.14
# mkdir build
# cd build
# ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
#make && make install

 

安裝完成後,驗證是否安裝成功。

 

# ll /lib64/libc.so.6
lrwxrwxrwx 1 root root 12 May 23 18:28 /lib64/libc.so.6 -> libc-2.14.so
# strings /lib64/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_PRIVATE

 

 

註意,安裝完2.14版本的glibc後,必須重啟MySQL,否則在安裝補丁過程中,依然報上面錯誤

 

mysql> INSTALL PLUGIN server_audit SONAME 'server_audit.so';
ERROR 1126 (HY000): Can't open shared library '/usr/lib64/mysql/plugin/server_audit.so' (errno: 2 /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/mysql/plugin/server_audit.so))

 

 

重啟MySQL實例後,安裝成功。如下所示:

 

	   

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 常見shell種類 1 Bourne Shell(/usr/bin/sh或/bin/sh) 2 Bourne Again Shell(/bin/bash) 3 C Shell(/usr/bin/csh) 4 K Shell(/usr/bin/ksh) 5 Shell for Root(/sbin/s ...
  • 怎樣將MAMP Pro for Mac中的mysql在navicat中使用 博客說明 文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗彙總,如有什麼地方侵權,請聯繫本人刪除,謝謝! 步驟 1.打開MAMP Pro for Mac,在資料庫的欄目裡面看到使用嵌套字鏈接,將/Applica ...
  • mkpasswd命令 功能說明:生成隨機密碼 註意:要使用此命令,需要安裝expect軟體包。 用法:mkpasswd [ args ] [ user ] 選項 作用 -l 指定密碼的長度(length),預設是9位 -d 指定密碼中使用多少位的數字(digits),預設為2位 -c 指定密碼中使用 ...
  • last命令 功能說明:顯示最近登錄用戶的列表 last命令會讀取位於/var/log/下的wtmp文件,並把文件中記錄的登錄系統的用戶名顯示出來。 用法:last 選項 作用 -n 設置顯示名單的行數 -R 不顯示登錄的主機名稱和IP地址 示例:顯示最近登錄用戶的信息 root pts/1 192 ...
  • id命令 功能說明:查看指定用戶的ID信息 用法:id [OPTIONS]... [USERNAME] id命令不指定用戶時,則顯示當前用戶的ID。若指定用戶,而不加任何選項時,則顯示用戶ID及所屬組的ID。 選項 作用 -u,--user 僅顯示用戶UID -g,--group 僅顯示用戶的基本組 ...
  • passwd命令 功能說明:設置密碼 用法:passwd [options] [username] 管理員可以使用不帶任何選項的passwd命令修改自己的密碼。 管理員修改任何用戶的密碼都不需要知道用戶原來的密碼,普通用戶僅能更改自己的密碼,且在更改密碼之前,系統會要求用戶輸入現在的密碼,另外普通用 ...
  • 2台主機互為備份,Web服務顯示NFS文件系統上的資源。新增一個Linux6.8的系統作為NFS文件伺服器目錄:1、完成HeartBeat基礎配置2、配置NFS伺服器3、配置HeartBeat資源管理伺服器使用NFS資源4、結果測試1、完成HeartBeat基礎配置基礎配置這裡就不在敘述了,參考下麵... ...
  • 剛纔完成了合同表的變更,到最後一步rename table的時候 ,有個長時間的查詢占用了元數據鎖,導致rename的最後一步不能進行。將該會話kill後rename完成。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...