本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
資料庫活動串流的 databaseActivityEventList JSON 陣列
稽核日誌承載是加密的 databaseActivityEventList
JSON 陣列。以下資料表列出稽核記錄中已解密 DatabaseActivityEventList
陣列中,每個活動事件的欄位 (按英文字母順序列出)。這些欄位會根據您使用 Aurora PostgreSQL 或 Aurora MySQL 而有所不同。請參閱適用於資料庫引擎的表格。
重要
事件結構可能會改變。Aurora 可能會在未來將新的欄位新增至活動事件。在剖析 JSON 資料的應用程式中,請確定程式碼可以忽略,或針對未知欄位名稱採取適當的動作。
Aurora PostgreSQL 的 databaseActivityEventList 欄位
以下是 Aurora PostgreSQL databaseActivityEventList
的欄位。
欄位 | 資料類型 | 描述 |
---|---|---|
class |
string |
活動事件的類別。Aurora PostgreSQL 的有效值如下:
|
clientApplication |
string | 用戶端報告用來連接的應用程式。用戶端不需提供此資訊,因此此值可以是 Null。 |
command |
string | SQL 命令名稱,其中不含任何命令詳細資訊。 |
commandText |
string |
使用者傳遞的實際 SQL 陳述式。針對 Aurora PostgreSQL,該值與原始 SQL 陳述式相同。此欄位可用於連接或中斷連接記錄以外的所有記錄類型,在前述兩種例外類型中值為 Null。 重要活動資料串流稽核記錄中會顯示每個陳述式的完整 SQL 文字,包括任何敏感資料。但是,如果 Aurora 可以從內容 (例如下列 SQL 陳述式) 判斷資料庫使用者密碼,則會編寫密文。
|
databaseName |
string | 使用者連接的資料庫。 |
dbProtocol |
string | 資料庫通訊協定,例如 Postgres 3.0 。 |
dbUserName |
string | 用戶端驗證所用的資料庫使用者。 |
errorMessage (僅限 1.1 版資料庫活動記錄) |
string |
如果有任何錯誤,該欄位會填入由資料庫伺服器產生的錯誤訊息。對於未導致錯誤的正常陳述式,此 錯誤是定義為任何會產生用戶端可見 PostgreSQL 錯誤日誌事件的活動,其嚴重性層級為 內部 PostgreSQL 伺服器錯誤,例如背景檢查點指標處理程序錯誤,並不會產生錯誤訊息。不過,無論日誌嚴重性層級的設定為何,仍會發出這類事件的記錄。這可以防止攻擊者關閉記錄日誌以嘗試避免偵測。 另請參閱 |
exitCode |
int | 工作階段結束記錄所用的值。清除結束時,此會包含結束代碼。在某些失敗狀況下可能無法隨時取得結束代碼。範例為 PostgreSQL 執行 exit() 或運算子執行 kill -9 之類的命令。如果發生任何錯誤,此 另請參閱 |
logTime |
string | 在稽核程式碼路徑中記錄的時間戳記。這代表 SQL 陳述式執行結束時間。另請參閱 startTime 欄位。 |
netProtocol |
string | 網路通訊協定。 |
objectName |
string | SQL 陳述式在其中操作的資料庫物件名稱。僅在 SQL 陳述式在資料庫物件上操作時才會使用此欄位。如果 SQL 陳述式沒有在物件上操作,則此值為 Null。 |
objectType |
string | 資料表、索引、檢視等之類的資料庫物件類型。僅在 SQL 陳述式在資料庫物件上操作時才會使用此欄位。如果 SQL 陳述式沒有在物件上操作,則此值為 Null。有效值包括以下項目:
|
paramList |
string | 傳遞至 SQL 陳述式的參數陣列 (以逗號分隔)。如果 SQL 陳述式沒有任何參數,此值會是空的陣列。 |
pid |
int | 後端程序的程序 ID,此程序的配置是用來提供用戶端連線。 |
remoteHost |
string | 用戶端 IP 地址或主機名稱。針對 Aurora PostgreSQL,使用哪一個取決於資料庫的 log_hostname 參數設定。此remoteHost 值也包含 [local] 和 localhost ,表示來自rdsadmin 使用者的活動。 |
remotePort |
string | 用戶端連接埠號碼。 |
rowCount |
int | SQL 陳述式影響或擷取的資料列數。僅會對資料處理語言 (DML) 陳述式的 SQL 陳述式使用此欄位。如果 SQL 陳述式不是 DML 陳述式,則此值為 Null。 |
serverHost |
string | 資料庫伺服器主機 IP 地址。此serverHost 值也包含 [local] 和 localhost ,表示來自rdsadmin 使用者的活動。 |
serverType |
string | 資料庫伺服器類型,例如 PostgreSQL 。 |
serverVersion |
string | 資料庫伺服器版本,例如 Aurora PostgreSQL 的 2.3.1 。 |
serviceName |
string | 服務名稱,例如 Amazon Aurora PostgreSQL-Compatible edition 。 |
sessionId |
int | 虛擬唯一的工作階段識別符。 |
sessionId |
int | 虛擬唯一的工作階段識別符。 |
startTime (僅限 1.1 版資料庫活動記錄) |
string |
SQL 陳述式開始執行的時間。 若要計算 SQL 陳述式大約的執行時間,請使用 |
statementId |
int | 用戶端 SQL 陳述式的識別符。記數器是使用工作階段層級,且會隨著用戶端輸入的每個 SQL 陳述式遞增。 |
substatementId |
int | SQL 子陳述式的識別符。此值會計算由 statementId 欄位識別的每個 SQL 陳述式包含的子陳述式。 |
type |
string | 事件類型。有效值為 record 或 heartbeat 。 |
Aurora MySQL 的 databaseActivityEventList 欄位
以下是 Aurora MySQL databaseActivityEventList
的欄位。
欄位 | 資料類型 | 描述 |
---|---|---|
class |
string |
活動事件的類別。 Aurora MySQL 的有效值如下:
|
clientApplication |
string | 用戶端報告用來連接的應用程式。用戶端不需提供此資訊,因此此值可以是 Null。 |
command |
string |
SQL 陳述式的一般類別。此欄位的值取決於 當
當
|
commandText |
string |
對於 對於 針對 Aurora MySQL,引號之類的字元前面加上反斜線,代表逸出字元。 重要稽核記錄中會顯示每個陳述式的完整 SQL 文字,包括任何敏感資料。但是,如果 Aurora 可以從內容 (例如下列 SQL 陳述式) 判斷資料庫使用者密碼,則會編寫密文。
注意指定此處所顯示提示以外的密碼,作為安全最佳實務。 |
databaseName |
string | 使用者連接的資料庫。 |
dbProtocol |
string | 資料庫通訊協定。目前,Aurora MySQL 的這個值永遠是 MySQL 。 |
dbUserName |
string | 用戶端驗證所用的資料庫使用者。 |
endTime (僅限 1.2 版資料庫活動記錄) |
string |
SQL 陳述式結束執行的時間。以國際標準時間 (UTC) 格式表示。 若要計算 SQL 陳述式的執行時間,請使用 |
errorMessage (僅限 1.1 版資料庫活動記錄) |
string |
如果有任何錯誤,該欄位會填入由資料庫伺服器產生的錯誤訊息。對於未導致錯誤的正常陳述式,此 錯誤是定義為任何會產生用戶端可見 MySQL 錯誤日誌事件的活動,其嚴重性層級為 內部 MySQL 伺服器錯誤,例如背景檢查點指標處理程序錯誤,並不會產生錯誤訊息。不過,無論日誌嚴重性層級的設定為何,仍會發出這類事件的記錄。這可以防止攻擊者關閉記錄日誌以嘗試避免偵測。 另請參閱 |
exitCode |
int | 工作階段結束記錄所用的值。清除結束時,此會包含結束代碼。在某些失敗狀況下可能無法隨時取得結束代碼。在這種情況下,此值可能是零,也可能是空白。 |
logTime |
string | 在稽核程式碼路徑中記錄的時間戳記。以國際標準時間 (UTC) 格式表示。如需計算陳述式持續時間的最準確方式,請參閱 startTime 和 endTime 欄位。 |
netProtocol |
string | 網路通訊協定。目前,Aurora MySQL 的這個值永遠是 TCP 。 |
objectName |
string | SQL 陳述式在其中操作的資料庫物件名稱。僅在 SQL 陳述式在資料庫物件上操作時才會使用此欄位。如果 SQL 陳述式沒有在物件上操作,則此值為空白。若要建構物件的完整名稱,請結合 databaseName 和 objectName 。如果查詢涉及多個物件,則此欄位可以是以逗號分隔的名稱清單。 |
objectType |
string |
資料表、索引、檢視等之類的資料庫物件類型。僅在 SQL 陳述式在資料庫物件上操作時才會使用此欄位。如果 SQL 陳述式沒有在物件上操作,則此值為 Null。 Aurora MySQL 的有效值包括以下項目:
|
paramList |
string | 此欄位不會用於 Aurora MySQL 且一律為空。 |
pid |
int | 後端程序的程序 ID,此程序的配置是用來提供用戶端連線。重新啟動資料庫伺服器時,pid 變更和 statementId 欄位的計數器會重新啟動。 |
remoteHost |
string | 發出 SQL 陳述式之用戶端的 IP 地址或主機名稱。針對 Aurora MySQL,使用哪一個取決於資料庫的 skip_name_resolve 參數設定。localhost 的值表示來自 rdsadmin 特殊使用者的活動。 |
remotePort |
string | 用戶端連接埠號碼。 |
rowCount |
int | SQL 陳述式傳回的資料列數目。例如,如果一個 SELECT 陳述式傳回 10 個資料列,則 rowCount 為 10。對於 INSERT 或 UPDATE 陳述式,rowCount 為 0。 |
serverHost |
string | 資料庫伺服器執行個體識別符。 |
serverType |
string | 資料庫伺服器類型,例如 MySQL 。 |
serverVersion |
string | 資料庫伺服器版本。目前,Aurora MySQL 的這個值永遠是 MySQL 5.7.12 。 |
serviceName |
string | 服務的名稱。目前,Aurora MySQL 的這個值永遠是 Amazon Aurora MySQL 。 |
sessionId |
int | 虛擬唯一的工作階段識別符。 |
startTime (僅限 1.1 版資料庫活動記錄) |
string |
SQL 陳述式開始執行的時間。以國際標準時間 (UTC) 格式表示。 若要計算 SQL 陳述式的執行時間,請使用 |
statementId |
int | 用戶端 SQL 陳述式的識別符。計數器會隨著用戶端輸入的每個 SQL 陳述式而增加。當資料庫執行個體重新啟動時,計數器會重設。 |
substatementId |
int | SQL 子陳述式的識別符。對於具有類別 MAIN 的事件此值是 1,對於具有類別 AUX 的事件則為 2。使用此 statementId 欄位可識別由相同陳述式產生的所有事件。 |
transactionId (僅限 1.2 版資料庫活動記錄) |
int | 交易的識別符。 |
type |
string | 事件類型。有效值為 record 或 heartbeat 。 |