文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  安裝或解除安裝 MySQL Enterprise Audit

8.4.5.2 安裝或解除安裝 MySQL Enterprise Audit

本節說明如何安裝或解除安裝 MySQL Enterprise Audit,其使用稽核記錄外掛程式和第 8.4.5.1 節「MySQL Enterprise Audit 的要素」中描述的相關要素實作。如需有關安裝外掛程式的一般資訊,請參閱第 7.6.1 節「安裝和解除安裝外掛程式」

當您升級 MySQL 安裝時,外掛程式升級不會自動進行,而且某些外掛程式可載入函式必須手動載入 (請參閱安裝可載入函式)。或者,您可以在升級 MySQL 之後重新安裝外掛程式以載入新的函式。

重要事項

請在依照指示操作之前,閱讀本節的全部內容。程序的某些部分會因您的環境而異。

注意

如果已安裝,即使停用 audit_log 外掛程式,也會產生一些最低限度的額外負荷。為了避免這種額外負荷,除非您計劃使用 MySQL Enterprise Audit,否則請勿安裝。

若要讓伺服器使用,外掛程式程式庫檔案必須位於 MySQL 外掛程式目錄中 (由 plugin_dir 系統變數指定的目錄)。如有必要,請在伺服器啟動時設定 plugin_dir 的值,以設定外掛程式目錄位置。

若要安裝 MySQL Enterprise Audit,請在您的 MySQL 安裝的 share 目錄中尋找,並選擇適合您平台的指令碼。可用的指令碼在用於參照指令碼的檔案名稱中有所不同

  • audit_log_filter_win_install.sql

  • audit_log_filter_linux_install.sql

依如下方式執行指令碼。此處的範例使用 Linux 安裝指令碼和預設的 mysql 系統資料庫。請針對您的系統進行適當的替換。

$> mysql -u root -p -D mysql < audit_log_filter_linux_install.sql
Enter password: (enter root password here)

執行安裝指令碼時,可以指定自訂資料庫來儲存 JSON 篩選表格。請先建立資料庫;其名稱不得超過 64 個字元。例如

mysql> CREATE DATABASE IF NOT EXISTS database-name;

接著,使用替代的資料庫名稱執行指令碼。

$> mysql -u root -p -D database-name < audit_log_filter_linux_install.sql
Enter password: (enter root password here)
注意

某些 MySQL 版本已對 MySQL Enterprise Audit 表格的結構進行變更。為了確保您的表格在從舊版 MySQL 升級時為最新狀態,請執行 MySQL 升級程序,並確保使用強制更新的選項 (請參閱第 3 章,升級 MySQL)。如果您偏好僅針對 MySQL Enterprise Audit 表格執行更新陳述式,請參閱以下討論。

對於新的 MySQL 安裝,MySQL Enterprise Audit 使用的 audit_log_user 資料表中的 USERHOST 欄位,其定義能更佳地對應到 mysql.user 系統資料表中的 UserHost 欄位的定義。對於已安裝 MySQL Enterprise Audit 的安裝進行升級,建議您如下所示地變更資料表定義

ALTER TABLE mysql.audit_log_user
  DROP FOREIGN KEY audit_log_user_ibfk_1;
ALTER TABLE mysql.audit_log_filter
  CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci;
ALTER TABLE mysql.audit_log_user
  CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci;
ALTER TABLE mysql.audit_log_user
  MODIFY COLUMN USER VARCHAR(32);
ALTER TABLE mysql.audit_log_user
  ADD FOREIGN KEY (FILTERNAME) REFERENCES mysql.audit_log_filter(NAME);
注意

若要在來源/複本複寫、群組複寫或 InnoDB 叢集的環境中使用 MySQL Enterprise Audit,您必須先在複本節點上準備好,再於來源節點上執行安裝腳本。這是必要的,因為腳本中的 INSTALL PLUGIN 陳述式不會被複寫。

  1. 在每個複本節點上,從安裝腳本中提取 INSTALL PLUGIN 陳述式,然後手動執行它。

  2. 在來源節點上,如先前所述執行安裝腳本。

若要驗證外掛程式安裝,請檢查 Information Schema PLUGINS 資料表,或使用 SHOW PLUGINS 陳述式 (請參閱 第 7.6.2 節,「取得伺服器外掛程式資訊」)。例如

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
       FROM INFORMATION_SCHEMA.PLUGINS
       WHERE PLUGIN_NAME LIKE 'audit%';
+-------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+-------------+---------------+
| audit_log   | ACTIVE        |
+-------------+---------------+

如果外掛程式初始化失敗,請檢查伺服器錯誤日誌以取得診斷訊息。

安裝 MySQL Enterprise Audit 後,您可以在後續伺服器啟動時使用 --audit-log 選項來控制 audit_log 外掛程式的啟動。例如,若要防止外掛程式在執行期間被移除,請使用此選項

[mysqld]
audit-log=FORCE_PLUS_PERMANENT

如果希望防止伺服器在沒有稽核外掛程式的情況下執行,請使用 --audit-log 搭配 FORCEFORCE_PLUS_PERMANENT 值,以強制伺服器在初始化外掛程式失敗時啟動失敗。

重要事項

預設情況下,基於規則的稽核日誌篩選不會記錄任何使用者的可稽核事件。這與傳統稽核日誌的行為不同,傳統稽核日誌會記錄所有使用者的所有可稽核事件 (請參閱 第 8.4.5.10 節,「傳統模式稽核日誌篩選」)。如果您希望使用基於規則的篩選來產生記錄所有事件的行為,請建立一個簡單的篩選器以啟用記錄,並將其指派給預設帳戶

SELECT audit_log_filter_set_filter('log_all', '{ "filter": { "log": true } }');
SELECT audit_log_filter_set_user('%', 'log_all');

指派給 % 的篩選器用於來自任何未明確指派篩選器的帳戶的連線 (一開始所有帳戶皆為如此)。

當如上所述安裝時,MySQL Enterprise Audit 會保持安裝狀態,直到解除安裝。若要移除它,請執行位於您的 MySQL 安裝 share 目錄中的解除安裝腳本。此處的範例指定預設系統資料庫 mysql。請針對您的系統進行適當的替換。

$> mysql -u root -p -D mysql < audit_log_filter_uninstall.sql
Enter password: (enter root password here)