databaseActivityEventJSON列出數據庫活動流的數組 - Amazon Aurora

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

databaseActivityEventJSON列出數據庫活動流的數組

稽核記錄裝載是加密的databaseActivityEventListJSON陣列。以下資料表列出稽核記錄中已解密 DatabaseActivityEventList 陣列中,每個活動事件的欄位 (按英文字母順序列出)。根據您使用的是「Aurora 波斯特」還是「我的 SQL Aurora」,欄SQL位會有所不同。請參閱適用於資料庫引擎的表格。

重要

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

databaseActivityEventAurora 波斯特的列表字段 SQL

以下是 Aurora 波斯特雷SQL的databaseActivityEventList字段。

欄位 資料類型 描述
class string

活動事件的類別。Aurora 波斯特的SQL有效值如下:

  • ALL

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

  • DDL— 未包含在ROLE類別DDL陳述式清單中的陳述式。

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

  • MISCDISCARDFETCHCHECKPOINTVACUUM 之類的其他命令。

  • NONE

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

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

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

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

使用者傳入的實際SQL陳述式。對於 Aurora · 波斯特格雷SQL,其值與原始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。

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

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

另請參閱 exitCode 欄位。

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

如果有任何錯誤,exitCode欄位會顯示SQL錯誤代碼SQLSTATE,如 Postgre SQL 錯誤代碼中所列。

另請參閱 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陳述式傳回的資料列數目。例如,如果SELECT語句返回 10 行,則 rowCount 為 10。對於INSERT或UPDATE語句, rowCount 是 0。
serverHost string 資料庫伺服器主機 IP 地址。該serverHost值還包括[local]和表localhost示來自rdsadmin用戶的活動。
serverType string 資料庫伺服器類型,例如 PostgreSQL
serverVersion string 資料庫伺服器版本,2.3.1例如 Aurora Postgre SQL。
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

databaseActivityEvent我的 Aurora 的列表字段 SQL

以下是我的 Aurora 的databaseActivityEventList字段SQL。

欄位 資料類型 描述
class string

活動事件的類別。

「我的 Aurora」的SQL有效值如下:

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

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

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

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

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

classMAIN 時的值包括以下內容:

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

  • QUERY-一個SQL聲明。伴隨著一個或多個 class 的值為 AUX 的事件。

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

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

  • CHANGEUSER— 狀態更改是我的SQL網絡協議的一部分,而不是來自您發出的聲明。

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 資料庫通訊協定。目前,此值始終MySQL適用於「我的 Aurora」SQL。
dbUserName string 用戶端驗證所用的資料庫使用者。
endTime

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

string

SQL敘述句執行結束的時間。它以協調世界時(UTC)格式表示。

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

errorMessage

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

string

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

錯誤被定義為任何會產生嚴重性等級ERROR或更高的用戶端可見我的SQL錯誤記錄事件的活動。如需詳細資訊,請參閱我的SQL參考手冊》中的錯誤記錄。例如,語法錯誤和查詢取消會產生錯誤訊息。

內部我的SQL服務器錯誤(如後台檢查指針進程錯誤)不會生成錯誤消息。不過,無論日誌嚴重性層級的設定為何,仍會發出這類事件的記錄。這可以防止攻擊者關閉記錄日誌以嘗試避免偵測。

另請參閱 exitCode 欄位。

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

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

「我的 Aurora」的有效值SQL包括下列項目:

  • INDEX

  • TABLE

  • UNKNOWN

paramList string 此欄位不適用於「我的 Aurora」,SQL而且永遠為空。
pid int 後端程序的程序 ID,此程序的配置是用來提供用戶端連線。重新啟動資料庫伺服器時,pid 變更和 statementId 欄位的計數器會重新啟動。
remoteHost string 發出SQL陳述式的用戶端 IP 位址或主機名稱。對於 Aurora MySQL,使用哪一個取決於資料庫的skip_name_resolve參數設定。localhost 的值表示來自 rdsadmin 特殊使用者的活動。
remotePort string 用戶端連接埠號碼。
rowCount int SQL陳述式所影響或擷取的表格資料列數目。此欄位僅用於資料操作語言 (DML) SQL 陳述式的陳述式。如果SQL陳述式不是DML陳述式,則此值為 null。
serverHost string 資料庫伺服器執行個體識別符。
serverType string 資料庫伺服器類型,例如 MySQL
serverVersion string 資料庫伺服器版本。目前,此值始終MySQL 5.7.12適用於「我的 Aurora」SQL。
serviceName string 服務的名稱。目前,此值始終Amazon Aurora MySQL適用於「我的 Aurora」SQL。
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