文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式 Letter) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  安裝或解除安裝 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 Cluster 的情況下使用 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)