

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# MariaDB 稽核外掛程式支援 MySQL
<a name="Appendix.MySQL.Options.AuditPlugin"></a>

Amazon RDS 針對 MySQL 資料庫執行個體提供以開放原始碼 MariaDB 稽核外掛程式為基礎的稽核外掛程式。如需詳細資訊，請參閱 [MySQL Server GitHub 儲存庫的稽核外掛程式](https://github.com/aws/audit-plugin-for-mysql)。

**注意**  
MySQL 的稽核外掛程式以 MariaDB 稽核外掛程式為基礎。在本文中，我們將其稱為 MariaDB 稽核外掛程式。

MariaDB 稽核外掛程式會記錄資料庫活動，包含登入資料庫的使用者，以及針對資料庫執行的查詢。資料庫活動的記錄會儲存在日誌檔中。

## 稽核外掛程式選項設定
<a name="Appendix.MySQL.Options.AuditPlugin.Options"></a>

Amazon RDS 支援 MariaDB 稽核外掛程式的下列設定。


| 選項設定 | 有效值 | 預設值 | 描述 | 
| --- | --- | --- | --- | 
| `SERVER_AUDIT_FILE_PATH` | `/rdsdbdata/log/audit/` | `/rdsdbdata/log/audit/` |  日誌檔的位置。日誌檔包含 `SERVER_AUDIT_EVENTS` 中指定之活動的記錄。如需更多詳細資訊，請參閱 [檢視並列出資料庫日誌檔案](USER_LogAccess.Procedural.Viewing.md) 及 [ MySQL資料庫日誌檔案](USER_LogAccess.Concepts.MySQL.md)。  | 
| `SERVER_AUDIT_FILE_ROTATE_SIZE` | 1–1000000000 | 1000000 |  達到時導致檔案輪換的大小 (以位元組表示)。如需更多詳細資訊，請參閱 [RDS for MySQL 資料庫日誌概觀](USER_LogAccess.MySQL.LogFileSize.md)。  | 
| `SERVER_AUDIT_FILE_ROTATIONS` | 0–100 | 9 |  要在 `server_audit_output_type=file` 時儲存的日誌輪換次數。如果設定為 0，則日誌檔永遠不會輪換。如需詳細資訊，請參閱[RDS for MySQL 資料庫日誌概觀](USER_LogAccess.MySQL.LogFileSize.md)及[下載資料庫日誌檔案](USER_LogAccess.Procedural.Downloading.md)。  | 
| `SERVER_AUDIT_EVENTS` | `CONNECT`, `QUERY`, `QUERY_DDL`, `QUERY_DML`, `QUERY_DML_NO_SELECT`, `QUERY_DCL` | `CONNECT`, `QUERY` |  要記錄在日誌中之活動的類型。安裝 MariaDB 稽核外掛程式是自行記錄的。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html) 對於 MySQL，不支援 `TABLE`。  | 
| `SERVER_AUDIT_INCL_USERS` | 多個以逗號分隔的值 | 無 |  只包括來自所指定使用者的活動。預設情況下，會記錄所有使用者的活動。`SERVER_AUDIT_INCL_USERS` 和 `SERVER_AUDIT_EXCL_USERS` 是相互排斥的。如果您將值新增至 `SERVER_AUDIT_INCL_USERS`，請確保未將任何值新增至 `SERVER_AUDIT_EXCL_USERS`。  | 
| `SERVER_AUDIT_EXCL_USERS` | 多個以逗號分隔的值 | 無 |  排除來自所指定使用者的活動。預設情況下，會記錄所有使用者的活動。`SERVER_AUDIT_INCL_USERS` 和 `SERVER_AUDIT_EXCL_USERS` 是相互排斥的。如果您將值新增至 `SERVER_AUDIT_EXCL_USERS`，請確保未將任何值新增至 `SERVER_AUDIT_INCL_USERS`。  `rdsadmin` 使用者會每次查詢資料庫，以檢查資料庫的運作狀態。根據您的其他設定，此活動可能會導致您的日誌檔大小非常快速地變得非常大。如果您不需要記錄此活動，請將 `rdsadmin` 使用者新增至 `SERVER_AUDIT_EXCL_USERS` 清單。   即使針對此選項設定指定了使用者，也會一律記錄所有使用者的 `CONNECT` 活動。   | 
| `SERVER_AUDIT_LOGGING` | `ON` | `ON` |  記錄為作用中狀態。唯一有效的值為 `ON`。Amazon RDS 不支援停用記錄。如果想要停用記錄，請移除 MariaDB 稽核外掛程式。如需更多詳細資訊，請參閱 [移除 MariaDB 稽核外掛程式](#Appendix.MySQL.Options.AuditPlugin.Remove)。  | 
| `SERVER_AUDIT_QUERY_LOG_LIMIT` | 0–2147483647 | 1024 |  記錄中查詢字串長度的限制。  | 

## 新增 MariaDB 稽核外掛程式
<a name="Appendix.MySQL.Options.AuditPlugin.Add"></a>

將 MariaDB 稽核外掛程式新增至資料庫執行個體的一般程序如下：
+ 建立新的選項群組，或是複製或修改現有選項群組
+ 將選項新增至選項群組
+ 將選項群組與資料庫執行個體關聯

在您新增 MariaDB 稽核外掛程式之後，不需要重新啟動資料庫執行個體。只要選項群組作用中，稽核就會立即開始。

**重要**  
新增 MariaDB 稽核外掛程式至資料庫執行個體可能會導致停機。我們建議在維護視窗下或資料庫低負載的時候新增 MariaDB 稽核外掛程式。

**新增 MariaDB 稽核外掛程式**

1. 判斷要使用的選項群組。您可以建立新的選項群組或使用現有的選項群組。如果您要使用現有的選項群組，請跳到下一個步驟。否則，建立自訂的資料庫選項群組。為**引擎**選擇 **mysql**，然後為**主要引擎版本**選擇 **5.7**、**8.0** 或 **8.4**。如需詳細資訊，請參閱[建立選項群組](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)。

1. 將 **MARIADB\$1AUDIT\$1PLUGIN** 選項新增至選項群組，並設定選項設定。如需新增選項的詳細資訊，請參閱[將選項新增至選項群組](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)。如需每項設定的詳細資訊，請參閱[稽核外掛程式選項設定](#Appendix.MySQL.Options.AuditPlugin.Options)。

1. 將選項群組套用至新的或現有的資料庫執行個體。
   + 針對新的資料庫執行個體，您會在啟動執行個體時套用選項群組。如需更多詳細資訊，請參閱 [建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)。
   + 針對現有的資料庫執行個體，您可以透過修改執行個體並附加新的選項群組來套用選項群組。如需詳細資訊，請參閱[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

## 稽核日誌格式
<a name="Appendix.MySQL.Options.AuditPlugin.LogFormat"></a>

日誌檔案以 UTF-8 格式的逗號分隔變數 (CSV) 檔案表示。

**提示**  
日誌檔案項目不會循序排列。若要排序項目，請使用時間戳記值。若要查看最新事件，您可能必須檢閱所有日誌檔案。為了更靈活排序和搜尋日誌資料，請開啟設定，將稽核日誌上傳到 CloudWatch，然後使用 CloudWatch 界面檢視這些日誌。  
 若要查看包含更多欄位類型和以 JSON 格式輸出的稽核資料，您也可以使用資料庫活動串流功能。如需詳細資訊，請參閱[使用資料庫活動串流來監控 Amazon RDS](DBActivityStreams.md)。

稽核日誌檔案的每一列依指定順序包含以下逗號分隔的資訊：


| 欄位 | 描述 | 
| --- | --- | 
|  timestamp  |  所記錄事件的 `YYYYMMDD` 後有 `HH:MI:SS` (24 小時制)。  | 
|  serverhost  |  為其記錄事件之執行個體的名稱。  | 
|  username  |  使用者的連線使用者名稱。  | 
|  host  |  使用者連線來源的主機。  | 
|  connectionid  |  所記錄操作的連線 ID 號碼。  | 
|  queryid  |  查詢 ID 號碼，可用來尋找關聯式資料表事件和相關的查詢。若為 `TABLE` 事件，則會新增多行。  | 
|  operation  |  記錄的動作類型。可能值為：`CONNECT`、`QUERY`、`READ`、`WRITE`、`CREATE`、`ALTER`、`RENAME` 及 `DROP`。  | 
|  database  |  由 `USE` 命令設定的作用中資料庫。  | 
|  物件  |  若為 `QUERY` 事件，此值指出資料庫所執行的查詢。若為 `TABLE` 事件，則指出資料表名稱。  | 
|  retcode  |  所記錄操作的傳回碼。  | 
|  connection\$1type  |  與伺服器之連線的安全狀態。可能值為： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html)  | 

## 檢視和下載 MariaDB 稽核外掛程式日誌
<a name="Appendix.MySQL.Options.AuditPlugin.Log"></a>

在啟用 MariaDB 稽核外掛程式之後，您可以採取與存取任何其他文字型日誌檔相同的方式來存取日誌檔中的結果。稽核日誌檔位於 `/rdsdbdata/log/audit/`。如需在主控台中檢視日誌檔的相關資訊，請參閱[檢視並列出資料庫日誌檔案](USER_LogAccess.Procedural.Viewing.md)。如需下載日誌檔的相關資訊，請參閱[下載資料庫日誌檔案](USER_LogAccess.Procedural.Downloading.md)。

## 修改 MariaDB 稽核外掛程式設定
<a name="Appendix.MySQL.Options.AuditPlugin.ModifySettings"></a>

在啟用 MariaDB 稽核外掛程式之後，您可以修改設定。如需如何修改選項設定的詳細資訊，請參閱[修改選項設定](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption)。如需每項設定的詳細資訊，請參閱[稽核外掛程式選項設定](#Appendix.MySQL.Options.AuditPlugin.Options)。

## 移除 MariaDB 稽核外掛程式
<a name="Appendix.MySQL.Options.AuditPlugin.Remove"></a>

Amazon RDS 不支援在 MariaDB 稽核外掛程式中關閉記錄。不過，您可以從資料庫執行個體中移除外掛程式。當您移除 MariaDB 稽核外掛程式時，資料庫執行個體會自動重新啟動來停止稽核。

若要從資料庫執行個體中移除 MariaDB 稽核外掛程式，請執行下列其中一個動作：
+ 從其所屬的選項群組中移除 MariaDB 稽核外掛程式。此變更會影響使用選項群組的所有資料庫執行個體。如需詳細資訊，請參閱 [從選項群組移除選項](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption) 
+ 修改資料庫執行個體，並指定不包括外掛程式的不同選項群組。此變更會影響單一資料庫執行個體。您可以指定預設的 (空白) 選項群組或不同的自訂選項群組。如需更多詳細資訊，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。