資料庫活動串流的 databaseActivityEventList JSON 陣列 - Amazon Aurora

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

資料庫活動串流的 databaseActivityEventList JSON 陣列

稽核日誌承載是加密的 databaseActivityEventList JSON 陣列。以下資料表列出稽核記錄中已解密 DatabaseActivityEventList 陣列中,每個活動事件的欄位 (按英文字母順序列出)。這些欄位會根據您使用 Aurora PostgreSQL 或 Aurora MySQL 而有所不同。請參閱適用於資料庫引擎的表格。

重要

事件結構可能會改變。Aurora 可能會在未來將新的欄位新增至活動事件。在剖析 JSON 資料的應用程式中,請確定程式碼可以忽略,或針對未知欄位名稱採取適當的動作。

Aurora PostgreSQL 的 databaseActivityEventList 欄位

以下是 Aurora PostgreSQL databaseActivityEventList的欄位。

欄位 資料類型 描述
class string

活動事件的類別。Aurora PostgreSQL 的有效值如下:

  • ALL

  • CONNECT – 連線或中斷連線的事件。

  • DDL – DDL 陳述式,不包含在 ROLE 類別的陳述式清單中。

  • FUNCTION– 函數呼叫或 DO 區塊。

  • MISCDISCARDFETCHCHECKPOINTVACUUM 之類的其他命令。

  • NONE

  • READ – 來源為關聯或查詢時 SELECTCOPY 陳述式。

  • ROLE – 與包含 GRANTREVOKECREATE/ALTER/DROP ROLE 之角色和權限相關的陳述式。

  • WRITE – 目的地為關聯時,INSERTUPDATEDELETETRUNCATECOPY 陳述式。

clientApplication string 用戶端報告用來連接的應用程式。用戶端不需提供此資訊,因此此值可以是 Null。
command string SQL 命令名稱,其中不含任何命令詳細資訊。
commandText string

使用者傳遞的實際 SQL 陳述式。針對 Aurora PostgreSQL,該值與原始 SQL 陳述式相同。此欄位可用於連接或中斷連接記錄以外的所有記錄類型,在前述兩種例外類型中值為 Null。

重要

活動資料串流稽核記錄中會顯示每個陳述式的完整 SQL 文字,包括任何敏感資料。但是,如果 Aurora 可以從內容 (例如下列 SQL 陳述式) 判斷資料庫使用者密碼,則會編寫密文。

ALTER ROLE role-name WITH password
databaseName string 使用者連接的資料庫。
dbProtocol string 資料庫通訊協定,例如 Postgres 3.0
dbUserName string 用戶端驗證所用的資料庫使用者。
errorMessage

(僅限 1.1 版資料庫活動記錄)

string

如果有任何錯誤,該欄位會填入由資料庫伺服器產生的錯誤訊息。對於未導致錯誤的正常陳述式,此 errorMessage 值為 null。

錯誤是定義為任何會產生用戶端可見 PostgreSQL 錯誤日誌事件的活動,其嚴重性層級為 ERROR 或更高。如需詳細資訊,請參閱 PostgreSQL 訊息嚴重性等級。例如,語法錯誤和查詢取消會產生錯誤訊息。

內部 PostgreSQL 伺服器錯誤,例如背景檢查點指標處理程序錯誤,並不會產生錯誤訊息。不過,無論日誌嚴重性層級的設定為何,仍會發出這類事件的記錄。這可以防止攻擊者關閉記錄日誌以嘗試避免偵測。

另請參閱 exitCode 欄位。

exitCode int 工作階段結束記錄所用的值。清除結束時,此會包含結束代碼。在某些失敗狀況下可能無法隨時取得結束代碼。範例為 PostgreSQL 執行 exit() 或運算子執行 kill -9 之類的命令。

如果發生任何錯誤,此 exitCode 欄位會顯示 SQL 錯誤代碼 SQLSTATE,如 PostgreSQL 錯誤代碼中所列。

另請參閱 errorMessage 欄位。

logTime string 在稽核程式碼路徑中記錄的時間戳記。這代表 SQL 陳述式執行結束時間。另請參閱 startTime 欄位。
netProtocol string 網路通訊協定。
objectName string SQL 陳述式在其中操作的資料庫物件名稱。僅在 SQL 陳述式在資料庫物件上操作時才會使用此欄位。如果 SQL 陳述式沒有在物件上操作,則此值為 Null。
objectType string 資料表、索引、檢視等之類的資料庫物件類型。僅在 SQL 陳述式在資料庫物件上操作時才會使用此欄位。如果 SQL 陳述式沒有在物件上操作,則此值為 Null。有效值包括以下項目:
  • COMPOSITE TYPE

  • FOREIGN TABLE

  • FUNCTION

  • INDEX

  • MATERIALIZED VIEW

  • SEQUENCE

  • TABLE

  • TOAST TABLE

  • VIEW

  • UNKNOWN

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 陳述式大約的執行時間,請使用 logTime - startTime。另請參閱 logTime 欄位。

statementId int 用戶端 SQL 陳述式的識別符。記數器是使用工作階段層級,且會隨著用戶端輸入的每個 SQL 陳述式遞增。
substatementId int SQL 子陳述式的識別符。此值會計算由 statementId 欄位識別的每個 SQL 陳述式包含的子陳述式。
type string 事件類型。有效值為 recordheartbeat

Aurora MySQL 的 databaseActivityEventList 欄位

以下是 Aurora MySQL databaseActivityEventList的欄位。

欄位 資料類型 描述
class string

活動事件的類別。

Aurora MySQL 的有效值如下:

  • MAIN – 代表 SQL 陳述式的主要事件。

  • AUX – 包含其他詳細資訊的補充事件。例如,重新命名物件的陳述式可能具有反映新名稱的類別 AUX 的事件。

    若要尋找 MAINAUX 相同陳述式相對應的事件,請檢查 pid 欄位和 statementId 欄位值相同的不同事件。

clientApplication string 用戶端報告用來連接的應用程式。用戶端不需提供此資訊,因此此值可以是 Null。
command string

SQL 陳述式的一般類別。此欄位的值取決於 class 的值。

classMAIN 時的值包括以下內容:

  • CONNECT – 用戶端工作階段已連線時。

  • QUERY – SQL 陳述式。伴隨著一個或多個 class 的值為 AUX 的事件。

  • DISCONNECT – 用戶端工作階段中斷連線時。

  • FAILED_CONNECT – 當用戶端嘗試連線但無法連線時。

  • CHANGEUSER – 屬於 MySQL 網路通訊協定的一部分狀態變更,而不是來自您發出的陳述式。

classAUX 時的值包括以下內容:

  • READ – 來源為關聯或查詢時 SELECTCOPY 陳述式。

  • WRITE – 目的地為關聯時,INSERTUPDATEDELETETRUNCATECOPY 陳述式。

  • DROP – 刪除物件。

  • CREATE – 建立物件。

  • RENAME – 重新命名物件。

  • ALTER – 檢視物件的屬性。

commandText string

對於 class 值為 MAIN 的事件,此欄位代表使用者傳入的實際 SQL 陳述式。此欄位可用於連接或中斷連接記錄以外的所有記錄類型,在前述兩種例外類型中值為 Null。

對於 class 值為 AUX 的事件,此欄位包含有關事件涉及之物件的補充資訊。

針對 Aurora MySQL,引號之類的字元前面加上反斜線,代表逸出字元。

重要

稽核記錄中會顯示每個陳述式的完整 SQL 文字,包括任何敏感資料。但是,如果 Aurora 可以從內容 (例如下列 SQL 陳述式) 判斷資料庫使用者密碼,則會編寫密文。

mysql> SET PASSWORD = 'my-password';
注意

指定此處所顯示提示以外的密碼,作為安全最佳實務。

databaseName string 使用者連接的資料庫。
dbProtocol string 資料庫通訊協定。目前,Aurora MySQL 的這個值永遠是 MySQL
dbUserName string 用戶端驗證所用的資料庫使用者。
endTime

(僅限 1.2 版資料庫活動記錄)

string

SQL 陳述式結束執行的時間。以國際標準時間 (UTC) 格式表示。

若要計算 SQL 陳述式的執行時間,請使用 endTime - startTime。另請參閱 startTime 欄位。

errorMessage

(僅限 1.1 版資料庫活動記錄)

string

如果有任何錯誤,該欄位會填入由資料庫伺服器產生的錯誤訊息。對於未導致錯誤的正常陳述式,此 errorMessage 值為 null。

錯誤是定義為任何會產生用戶端可見 MySQL 錯誤日誌事件的活動,其嚴重性層級為 ERROR 或更高。如需更多資訊,請參閱 MySQL 參考手冊中的錯誤記錄。例如,語法錯誤和查詢取消會產生錯誤訊息。

內部 MySQL 伺服器錯誤,例如背景檢查點指標處理程序錯誤,並不會產生錯誤訊息。不過,無論日誌嚴重性層級的設定為何,仍會發出這類事件的記錄。這可以防止攻擊者關閉記錄日誌以嘗試避免偵測。

另請參閱 exitCode 欄位。

exitCode int 工作階段結束記錄所用的值。清除結束時,此會包含結束代碼。在某些失敗狀況下可能無法隨時取得結束代碼。在這種情況下,此值可能是零,也可能是空白。
logTime string 在稽核程式碼路徑中記錄的時間戳記。以國際標準時間 (UTC) 格式表示。如需計算陳述式持續時間的最準確方式,請參閱 startTimeendTime 欄位。
netProtocol string 網路通訊協定。目前,Aurora MySQL 的這個值永遠是 TCP
objectName string SQL 陳述式在其中操作的資料庫物件名稱。僅在 SQL 陳述式在資料庫物件上操作時才會使用此欄位。如果 SQL 陳述式沒有在物件上操作,則此值為空白。若要建構物件的完整名稱,請結合 databaseNameobjectName。如果查詢涉及多個物件,則此欄位可以是以逗號分隔的名稱清單。
objectType string

資料表、索引、檢視等之類的資料庫物件類型。僅在 SQL 陳述式在資料庫物件上操作時才會使用此欄位。如果 SQL 陳述式沒有在物件上操作,則此值為 Null。

Aurora MySQL 的有效值包括以下項目:

  • INDEX

  • TABLE

  • UNKNOWN

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 陳述式的執行時間,請使用 endTime - startTime。另請參閱 endTime 欄位。

statementId int 用戶端 SQL 陳述式的識別符。計數器會隨著用戶端輸入的每個 SQL 陳述式而增加。當資料庫執行個體重新啟動時,計數器會重設。
substatementId int SQL 子陳述式的識別符。對於具有類別 MAIN 的事件此值是 1,對於具有類別 AUX 的事件則為 2。使用此 statementId 欄位可識別由相同陳述式產生的所有事件。
transactionId

(僅限 1.2 版資料庫活動記錄)

int 交易的識別符。
type string 事件類型。有效值為 recordheartbeat