databaseActivityEventElenca l'array JSON per i flussi di attività del database - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

databaseActivityEventElenca l'array JSON per i flussi di attività del database

Il payload del registro di controllo è un array JSON databaseActivityEventList crittografato. Le tabelle riportano in ordine alfabetico i campi per ogni evento di attività nella matrice DatabaseActivityEventList decrittata di un log di verifica. I campi sono diversi a seconda che si utilizzi Aurora PostgreSQL o Aurora MySQL. Consultare la tabella che si applica al modulo di gestione di database.

Importante

Tale struttura di eventi è soggetta a modifiche. Aurora potrebbe aggiungere nuovi campi agli eventi di attività in futuro. Nelle applicazioni che analizzano i dati JSON, assicurarsi che il codice possa ignorare o eseguire le azioni appropriate per i nomi di campo sconosciuti.

databaseActivityEventElenca i campi per Aurora PostgreSQL

Di seguito sono riportati databaseActivityEventList i campi per Aurora PostgreSQL.

Campo Tipo di dati Descrizione
class stringa

La classe dell'evento attività. I valori validi per Aurora PostgreSQL sono i seguenti.

  • ALL

  • CONNECT – Un evento di connessione o disconnessione.

  • DDL – Un'istruzione DDL che non è inclusa nell'elenco di istruzioni per la classe ROLE.

  • FUNCTION – Una chiamata di funzione o un blocco DO.

  • MISC – Un comando vario quale DISCARD, FETCH, CHECKPOINT o VACUUM.

  • NONE

  • READ – Un'istruzione SELECT o COPY quando l'origine è una relazione o una query.

  • ROLE – Un'istruzione correlata ai ruoli e privilegi inclusi GRANT, REVOKE e CREATE/ALTER/DROP ROLE.

  • WRITE – Un'istruzione INSERT, UPDATE, DELETE, TRUNCATE o COPY quando la destinazione è una relazione.

clientApplication stringa L'applicazione utilizzata dal client per eseguire la connessione come segnalato dal client. Il client non deve fornire queste informazioni, pertanto il valore può essere nullo.
command stringa Il nome del comando SQL senza alcun dettaglio comando.
commandText stringa

L'istruzione SQL effettiva passata dall'utente. Per Aurora PostgreSQL, il valore è identico all'istruzione SQL originale. Questo campo viene utilizzato per tutti i tipi di record tranne che i record di connessione e disconnessione, nel quale caso il valore è nullo.

Importante

Il testo SQL completo di ogni istruzione è visibile nel registro di controllo del flusso di attività, inclusi eventuali dati sensibili. Tuttavia, le password degli utenti del database vengono omesse se Aurora può stabilirle dal contesto, come nell'istruzione SQL seguente.

ALTER ROLE role-name WITH password
databaseName stringa Il database a cui è connesso l'utente.
dbProtocol stringa Il protocollo del database, ad esempio Postgres 3.0.
dbUserName stringa L'utente del database con cui il client è autenticato.
errorMessage

(solo record di attività del database versione 1.1)

stringa

Se si verifica una errore qualsiasi, questo campo viene compilato con il messaggio di errore che verrebbe generato dal server di database. Il valore errorMessage è nullo per le istruzioni normali che non hanno generato un errore.

Un errore è definito come qualsiasi attività che produce un evento del log degli errori PostgreSQL visibile al client in corrispondenza di un livello di gravità pari a ERROR o superiore. Per ulteriori informazioni, consulta la tabella dei livelli di gravità dei messaggi di PostgreSQL. Ad esempio, errori di sintassi e annullamenti delle query generano un messaggio di errore.

Gli errori del server PostgreSQL interno, come gli errori del processo checkpointer in background non generano un messaggio di errore. Tuttavia, i record per tali eventi vengono comunque generati a prescindere dall'impostazione del livello di gravità del registro. Ciò impedisce agli aggressori di disattivare la registrazione per tentare di evitare il rilevamento.

Vedere anche il campo exitCode.

exitCode int Un valore usato per un record di chiusura sessione. In una clean exit, contiene il codice di chiusura. Un codice di chiusura può sempre essere ottenuto in alcuni scenari di errore. Esempi sono se PostgreSQL esegue un exit() o se un operatore esegue un comando quale kill -9.

Se si verifica un errore qualsiasi, il campo exitCode mostra il codice di errore SQL, SQLSTATE, come elencato in PostgreSQL Error Codes.

Vedere anche il campo errorMessage.

logTime stringa Una timestamp come registrato nel percorso del codice di controllo. Rappresenta l'ora di fine dell'esecuzione dell'istruzione SQL. Vedere anche il campo startTime.
netProtocol stringa Il protocollo di comunicazione di rete.
objectName stringa Il nome dell'oggetto di database se l'istruzione SQL viene eseguita su uno. Questo campo viene utilizzato solo dove l'istruzione SQL è eseguita su un oggetto di database. Se l'istruzione SQL non è in esecuzione su un oggetto, questo valore è nullo.
objectType stringa Il tipo di oggetto di database, ad esempio tabella, indice, vista e così via. Questo campo viene utilizzato solo dove l'istruzione SQL è eseguita su un oggetto di database. Se l'istruzione SQL non è in esecuzione su un oggetto, questo valore è nullo. I valori validi includono i seguenti:
  • COMPOSITE TYPE

  • FOREIGN TABLE

  • FUNCTION

  • INDEX

  • MATERIALIZED VIEW

  • SEQUENCE

  • TABLE

  • TOAST TABLE

  • VIEW

  • UNKNOWN

paramList stringa Un array di parametri separati da virgole passati all'istruzione SQL. Se l'istruzione SQL non dispone di parametri, questo valore è un array vuoto.
pid int L'ID di processo del processo back-end allocato per servire la connessione client.
remoteHost stringa L'indirizzo IP del client o il nome host. Per Aurora PostgreSQL, quale viene utilizzato dipende dall'impostazione dei parametri log_hostname del database. Il remoteHost valore include anche [local] e localhost che indicano l'attività dell'utente. rdsadmin
remotePort string Il numero di porta del client.
rowCount int Il numero di righe della tabella influenzate o recuperate dall'istruzione SQL. Questo campo viene utilizzato solo per istruzioni SQL che sono istruzioni DML (Data Manipulation Language). Se l'istruzione SQL non è un'istruzione DML, questo valore è nullo.
serverHost string L'indirizzo IP host del server di database. Il serverHost valore include anche [local] e localhost che indicano l'attività dell'rdsadminutente.
serverType string Il tipo di server di database, ad esempio PostgreSQL.
serverVersion stringa La versione del server di database, ad esempio 2.3.1 per Aurora PostgreSQL.
serviceName stringa Il nome del servizio, ad esempi Amazon Aurora PostgreSQL-Compatible edition.
sessionId int Un identificatore di sessione pseudo-univoco.
sessionId int Un identificatore di sessione pseudo-univoco.
startTime

(solo record di attività del database versione 1.1)

stringa

L'ora di inizio dell'esecuzione dell'istruzione SQL.

Per calcolare il tempo di esecuzione approssimativo dell'istruzione SQL, utilizzar logTime - startTime. Vedere anche il campo logTime.

statementId int Identificatore per l'istruzione SQL del client. Il contatore è a livello di sessione e si incrementa con ogni istruzione SQL immessa dal client.
substatementId int Identificatore di una subistruzione SQL. Questo valore conteggia le istruzioni secondarie contenute per ogni istruzione SQL identificata dal campo statementId.
type stringa Il tipo di evento, I valori validi sono record e heartbeat.

databaseActivityEventElenca i campi per Aurora MySQL

Di seguito sono riportati databaseActivityEventList i campi per Aurora MySQL.

Campo Tipo di dati Descrizione
class stringa

La classe dell'evento attività.

I valori validi per Aurora MySQL sono i seguenti:

  • MAIN – L' evento primario che rappresenta un'istruzione SQL.

  • AUX – Un evento supplementare contenente ulteriori dettagli. Ad esempio, un'istruzione che rinomina un oggetto potrebbe avere un evento con classe AUX che riflette il nuovo nome.

    Per trovare gli eventi corrispondenti MAIN e AUX alla stessa istruzione, verificare la presenza di eventi diversi con gli stessi valori per il campo pid e per il campo statementId.

clientApplication stringa L'applicazione utilizzata dal client per eseguire la connessione come segnalato dal client. Il client non deve fornire queste informazioni, pertanto il valore può essere nullo.
command stringa

Categoria generale dell'istruzione SQL. I valori di questo campo dipendono dal valore di class.

I valori quando class è MAIN includono quanto segue:

  • CONNECT – Quando una sessione client è connessa.

  • QUERY – Istruzione SQL Accompagnato da uno o più eventi con un valore di class pari a AUX.

  • DISCONNECT – Quando una sessione client viene disconnessa.

  • FAILED_CONNECT – Quando un client tenta di connettersi ma non è in grado di farlo.

  • CHANGEUSER – Un cambiamento di stato che fa parte del protocollo di rete MySQL, non da una dichiarazione rilasciata.

I valori quando class è AUX includono quanto segue:

  • READ – Un'istruzione SELECT o COPY quando l'origine è una relazione o una query.

  • WRITE – Un'istruzione INSERT, UPDATE, DELETE, TRUNCATE o COPY quando la destinazione è una relazione.

  • DROP – Eliminazione di un oggetto

  • CREATE – Creazione di un oggetto.

  • RENAME – Ridenominazione di un oggetto

  • ALTER – Per cambiare le proprietà di un oggetto

commandText stringa

Per gli eventi con un valore class pari a MAIN, questo campo rappresenta l'istruzione SQL effettiva passata dall'utente. Questo campo viene utilizzato per tutti i tipi di record tranne che i record di connessione e disconnessione, nel quale caso il valore è nullo.

Per gli eventi con un valore class pari a AUX, questo campo contiene informazioni supplementari sugli oggetti coinvolti nell'evento.

Per Aurora MySQL, i caratteri quali le virgolette sono preceduti da una barra rovesciata che rappresenta un carattere di escape.

Importante

Il testo SQL completo di ogni istruzione è visibile nel registro di controllo, inclusi eventuali dati sensibili. Tuttavia, le password degli utenti del database vengono omesse se Aurora può stabilirle dal contesto, come nell'istruzione SQL seguente.

mysql> SET PASSWORD = 'my-password';
Nota

Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

databaseName string Il database a cui è connesso l'utente.
dbProtocol stringa Il protocollo di database. Attualmente, questo valore è sempre MySQL per Aurora MySQL.
dbUserName stringa L'utente del database con cui il client è autenticato.
endTime

(solo record di attività del database versione 1.2)

stringa

L'ora di fine dell'esecuzione dell'istruzione SQL. È rappresentato in formato UTC (Coordinated Universal Time).

Per calcolare il tempo di esecuzione dell'istruzione SQL, utilizzare endTime - startTime. Vedere anche il campo startTime.

errorMessage

(solo record di attività del database versione 1.1)

stringa

Se si verifica una errore qualsiasi, questo campo viene compilato con il messaggio di errore che verrebbe generato dal server di database. Il valore errorMessage è nullo per le istruzioni normali che non hanno generato un errore.

Un errore è definito come qualsiasi attività che produce un evento del log degli errori MySQL visibile al client in corrispondenza di un livello di gravità pari a ERROR o superiore. Per ulteriori informazioni, consulta il Log degli errori nel Manuale di riferimento di MySQL. Ad esempio, errori di sintassi e annullamenti delle query generano un messaggio di errore.

Gli errori del server MySQL interno, come gli errori del processo checkpointer in background non generano un messaggio di errore. Tuttavia, i record per tali eventi vengono comunque generati a prescindere dall'impostazione del livello di gravità del registro. Ciò impedisce agli aggressori di disattivare la registrazione per tentare di evitare il rilevamento.

Vedere anche il campo exitCode.

exitCode int Un valore usato per un record di chiusura sessione. In una clean exit, contiene il codice di chiusura. Un codice di chiusura può sempre essere ottenuto in alcuni scenari di errore. In questi casi, questo valore potrebbe essere zero o potrebbe essere vuoto.
logTime stringa Una timestamp come registrato nel percorso del codice di controllo. È rappresentato in formato UTC (Coordinated Universal Time). Per il modo più accurato per calcolare la durata dell'istruzione, vedere i campi startTime e endTime.
netProtocol stringa Il protocollo di comunicazione di rete. Attualmente, questo valore è sempre TCP per Aurora MySQL.
objectName stringa Il nome dell'oggetto di database se l'istruzione SQL viene eseguita su uno. Questo campo viene utilizzato solo dove l'istruzione SQL è eseguita su un oggetto di database. Se l'istruzione SQL non è in esecuzione su un oggetto, questo valore è nullo. Per costruire il nome completo dell'oggetto, combinare databaseName e objectName. Se la query coinvolge più oggetti, questo campo può essere un elenco di nomi separati da virgole.
objectType stringa

Il tipo di oggetto di database, ad esempio tabella, indice e così via. Questo campo viene utilizzato solo dove l'istruzione SQL è eseguita su un oggetto di database. Se l'istruzione SQL non è in esecuzione su un oggetto, questo valore è nullo.

I valori validi per Aurora MySQL includono i seguenti:

  • INDEX

  • TABLE

  • UNKNOWN

paramList stringa Questo campo non viene utilizzato per Aurora MySQL ed è sempre nullo.
pid int L'ID di processo del processo back-end allocato per servire la connessione client. Quando il server di database viene riavviato, le modifiche pid e il contatore per il campo statementId ricomincia.
remoteHost stringa L'indirizzo IP o il nome host del client che ha emesso l'istruzione SQL. Per Aurora MySQL, quale viene utilizzato dipende dall'impostazione dei parametri skip_name_resolve del database. Il valore localhost indica l'attività dell'utente rdsadmin speciale.
remotePort stringa Il numero di porta del client.
rowCount int Numero di righe restituite dall'istruzione SQL. Ad esempio, se un'istruzione SELECT restituisce 10 righe, RowCount è 10. Per le istruzioni INSERT o UPDATE, RowCount è 0.
serverHost string Identificatore dell'istanza del server di database.
serverType string Il tipo di server di database, ad esempio MySQL.
serverVersion stringa La versione del server di database. Attualmente, questo valore è sempre MySQL 5.7.12 per Aurora MySQL.
serviceName stringa Il nome del servizio Attualmente, questo valore è sempre Amazon Aurora MySQL per Aurora MySQL.
sessionId int Un identificatore di sessione pseudo-univoco.
startTime

(solo record di attività del database versione 1.1)

stringa

L'ora di inizio dell'esecuzione dell'istruzione SQL. È rappresentato in formato UTC (Coordinated Universal Time).

Per calcolare il tempo di esecuzione dell'istruzione SQL, utilizzare endTime - startTime. Vedere anche il campo endTime.

statementId int Identificatore per l'istruzione SQL del client. Il contatore aumenta con ogni istruzione SQL immessa dal client. Il contatore viene reimpostato quando viene riavviata l'istanza database.
substatementId int Identificatore di una subistruzione SQL. Questo valore è 1 per gli eventi con classe MAIN e 2 per gli eventi con classe AUX. Utilizzare il campo statementId per identificare tutti gli eventi generati dalla stessa istruzione.
transactionId

(solo record di attività del database versione 1.2)

int Identificatore di una transazione.
type stringa Il tipo di evento, I valori validi sono record e heartbeat.