Contenuti ed esempi dei log di controllo 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à.

Contenuti ed esempi dei log di controllo per i flussi di attività del database

Gli eventi monitorati sono rappresentati nel flusso di attività del database come JSON stringhe. La struttura è costituita da un JSON oggetto contenente unDatabaseActivityMonitoringRecord, che a sua volta contiene una databaseActivityEventList serie di eventi di attività.

Esempi di log di verifica per un flusso di attività

Di seguito sono riportati alcuni esempi di registri di JSON controllo decrittografati dei record degli eventi di attività.

Esempio CONNECT SQL

Il seguente record di eventi di attività mostra un accesso con l'uso di un'CONNECTSQListruzione (command) da parte di un client psql JDBC Thin Client database Oracle.

{ "type":"DatabaseActivityMonitoringRecords", "version":"1.1", "databaseActivityEvents": { "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-4HNY5V4RRNPKKYB7ICFKE5JBQQ", "instanceId":"db-FZJTMYKCXQBUUZ6VLU7NW3ITCM", "databaseActivityEventList":[ { "startTime": "2019-10-30 00:39:49.940668+00", "logTime": "2019-10-30 00:39:49.990579+00", "statementId": 1, "substatementId": 1, "objectType": null, "command": "CONNECT", "objectName": null, "databaseName": "postgres", "dbUserName": "rdsadmin", "remoteHost": "172.31.3.195", "remotePort": "49804", "sessionId": "5ce5f7f0.474b", "rowCount": null, "commandText": null, "paramList": [], "pid": 18251, "clientApplication": "psql", "exitCode": null, "class": "MISC", "serverVersion": "2.3.1", "serverType": "PostgreSQL", "serviceName": "Amazon Aurora PostgreSQL-Compatible edition", "serverHost": "172.31.3.192", "netProtocol": "TCP", "dbProtocol": "Postgres 3.0", "type": "record", "errorMessage": null } ] }, "key":"decryption-key" }
Esempio Registrazione degli eventi di attività di una dichiarazione Aurora My SQL CONNECT SQL

Il seguente record di eventi di attività mostra un accesso con l'uso di un'CONNECTSQListruzione (command) da parte di un client mysql (). clientApplication

{ "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-some_id", "instanceId":"db-some_id", "databaseActivityEventList":[ { "logTime":"2020-05-22 18:07:13.267214+00", "type":"record", "clientApplication":null, "pid":2830, "dbUserName":"rdsadmin", "databaseName":"", "remoteHost":"localhost", "remotePort":"11053", "command":"CONNECT", "commandText":"", "paramList":null, "objectType":"TABLE", "objectName":"", "statementId":0, "substatementId":1, "exitCode":"0", "sessionId":"725121", "rowCount":0, "serverHost":"master", "serverType":"MySQL", "serviceName":"Amazon Aurora MySQL", "serverVersion":"MySQL 5.7.12", "startTime":"2020-05-22 18:07:13.267207+00", "endTime":"2020-05-22 18:07:13.267213+00", "transactionId":"0", "dbProtocol":"MySQL", "netProtocol":"TCP", "errorMessage":"", "class":"MAIN" } ] }
Esempio Registrazione degli eventi di attività di istruzione Aurora Postgre SQL CREATE TABLE

{ "type":"DatabaseActivityMonitoringRecords", "version":"1.1", "databaseActivityEvents": { "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-4HNY5V4RRNPKKYB7ICFKE5JBQQ", "instanceId":"db-FZJTMYKCXQBUUZ6VLU7NW3ITCM", "databaseActivityEventList":[ { "startTime": "2019-05-24 00:36:54.403455+00", "logTime": "2019-05-24 00:36:54.494235+00", "statementId": 2, "substatementId": 1, "objectType": null, "command": "CREATE TABLE", "objectName": null, "databaseName": "postgres", "dbUserName": "rdsadmin", "remoteHost": "172.31.3.195", "remotePort": "34534", "sessionId": "5ce73c6f.7e64", "rowCount": null, "commandText": "create table my_table (id serial primary key, name varchar(32));", "paramList": [], "pid": 32356, "clientApplication": "psql", "exitCode": null, "class": "DDL", "serverVersion": "2.3.1", "serverType": "PostgreSQL", "serviceName": "Amazon Aurora PostgreSQL-Compatible edition", "serverHost": "172.31.3.192", "netProtocol": "TCP", "dbProtocol": "Postgres 3.0", "type": "record", "errorMessage": null } ] }, "key":"decryption-key" }
Esempio Registrazione degli eventi di attività di una dichiarazione Aurora My SQL CREATE TABLE

L'esempio seguente mostra un'CREATE TABLEistruzione per Aurora My. SQL L'operazione è rappresentata come due record di eventi separati. Un evento ha "class":"MAIN". L'altro evento ha "class":"AUX". I messaggi potrebbero arrivare in qualsiasi ordine. Il campo logTime dell'evento MAIN è sempre precedente ai campi logTime di qualsiasi evento AUX corrispondente.

Nell'esempio seguente viene illustrato l'evento con un valore class pari a MAIN.

{ "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-some_id", "instanceId":"db-some_id", "databaseActivityEventList":[ { "logTime":"2020-05-22 18:07:12.250221+00", "type":"record", "clientApplication":null, "pid":2830, "dbUserName":"master", "databaseName":"test", "remoteHost":"localhost", "remotePort":"11054", "command":"QUERY", "commandText":"CREATE TABLE test1 (id INT)", "paramList":null, "objectType":"TABLE", "objectName":"test1", "statementId":65459278, "substatementId":1, "exitCode":"0", "sessionId":"725118", "rowCount":0, "serverHost":"master", "serverType":"MySQL", "serviceName":"Amazon Aurora MySQL", "serverVersion":"MySQL 5.7.12", "startTime":"2020-05-22 18:07:12.226384+00", "endTime":"2020-05-22 18:07:12.250222+00", "transactionId":"0", "dbProtocol":"MySQL", "netProtocol":"TCP", "errorMessage":"", "class":"MAIN" } ] }

Nell'esempio seguente viene illustrato l'evento corrispondente con un valore class pari a AUX.

{ "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-some_id", "instanceId":"db-some_id", "databaseActivityEventList":[ { "logTime":"2020-05-22 18:07:12.247182+00", "type":"record", "clientApplication":null, "pid":2830, "dbUserName":"master", "databaseName":"test", "remoteHost":"localhost", "remotePort":"11054", "command":"CREATE", "commandText":"test1", "paramList":null, "objectType":"TABLE", "objectName":"test1", "statementId":65459278, "substatementId":2, "exitCode":"", "sessionId":"725118", "rowCount":0, "serverHost":"master", "serverType":"MySQL", "serviceName":"Amazon Aurora MySQL", "serverVersion":"MySQL 5.7.12", "startTime":"2020-05-22 18:07:12.226384+00", "endTime":"2020-05-22 18:07:12.247182+00", "transactionId":"0", "dbProtocol":"MySQL", "netProtocol":"TCP", "errorMessage":"", "class":"AUX" } ] }
Esempio SELECT

Il seguente esempio mostra un evento SELECT .

{ "type":"DatabaseActivityMonitoringRecords", "version":"1.1", "databaseActivityEvents": { "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-4HNY5V4RRNPKKYB7ICFKE5JBQQ", "instanceId":"db-FZJTMYKCXQBUUZ6VLU7NW3ITCM", "databaseActivityEventList":[ { "startTime": "2019-05-24 00:39:49.920564+00", "logTime": "2019-05-24 00:39:49.940668+00", "statementId": 6, "substatementId": 1, "objectType": "TABLE", "command": "SELECT", "objectName": "public.my_table", "databaseName": "postgres", "dbUserName": "rdsadmin", "remoteHost": "172.31.3.195", "remotePort": "34534", "sessionId": "5ce73c6f.7e64", "rowCount": 10, "commandText": "select * from my_table;", "paramList": [], "pid": 32356, "clientApplication": "psql", "exitCode": null, "class": "READ", "serverVersion": "2.3.1", "serverType": "PostgreSQL", "serviceName": "Amazon Aurora PostgreSQL-Compatible edition", "serverHost": "172.31.3.192", "netProtocol": "TCP", "dbProtocol": "Postgres 3.0", "type": "record", "errorMessage": null } ] }, "key":"decryption-key" }
{ "type": "DatabaseActivityMonitoringRecord", "clusterId": "", "instanceId": "db-4JCWQLUZVFYP7DIWP6JVQ77O3Q", "databaseActivityEventList": [ { "class": "TABLE", "clientApplication": "Microsoft SQL Server Management Studio - Query", "command": "SELECT", "commandText": "select * from [testDB].[dbo].[TestTable]", "databaseName": "testDB", "dbProtocol": "SQLSERVER", "dbUserName": "test", "endTime": null, "errorMessage": null, "exitCode": 1, "logTime": "2022-10-06 21:24:59.9422268+00", "netProtocol": null, "objectName": "TestTable", "objectType": "TABLE", "paramList": null, "pid": null, "remoteHost": "local machine", "remotePort": null, "rowCount": 0, "serverHost": "172.31.30.159", "serverType": "SQLSERVER", "serverVersion": "15.00.4073.23.v1.R1", "serviceName": "sqlserver-ee", "sessionId": 62, "startTime": null, "statementId": "0x03baed90412f564fad640ebe51f89b99", "substatementId": 1, "transactionId": "4532935", "type": "record", "engineNativeAuditFields": { "target_database_principal_id": 0, "target_server_principal_id": 0, "target_database_principal_name": "", "server_principal_id": 2, "user_defined_information": "", "response_rows": 0, "database_principal_name": "dbo", "target_server_principal_name": "", "schema_name": "dbo", "is_column_permission": true, "object_id": 581577110, "server_instance_name": "EC2AMAZ-NFUJJNO", "target_server_principal_sid": null, "additional_information": "", "duration_milliseconds": 0, "permission_bitmask": "0x00000000000000000000000000000001", "data_sensitivity_information": "", "session_server_principal_name": "test", "connection_id": "AD3A5084-FB83-45C1-8334-E923459A8109", "audit_schema_version": 1, "database_principal_id": 1, "server_principal_sid": "0x010500000000000515000000bdc2795e2d0717901ba6998cf4010000", "user_defined_event_id": 0, "host_name": "EC2AMAZ-NFUJJNO" } } ] }
Esempio Registrazione degli eventi di attività di una dichiarazione Aurora My SQL SELECT

Il seguente esempio mostra un evento SELECT.

Nell'esempio seguente viene illustrato l'evento con un valore class pari a MAIN.

{ "type":"DatabaseActivityMonitoringRecord", "clusterId":"cluster-some_id", "instanceId":"db-some_id", "databaseActivityEventList":[ { "logTime":"2020-05-22 18:29:57.986467+00", "type":"record", "clientApplication":null, "pid":2830, "dbUserName":"master", "databaseName":"test", "remoteHost":"localhost", "remotePort":"11054", "command":"QUERY", "commandText":"SELECT * FROM test1 WHERE id < 28", "paramList":null, "objectType":"TABLE", "objectName":"test1", "statementId":65469218, "substatementId":1, "exitCode":"0", "sessionId":"726571", "rowCount":2, "serverHost":"master", "serverType":"MySQL", "serviceName":"Amazon Aurora MySQL", "serverVersion":"MySQL 5.7.12", "startTime":"2020-05-22 18:29:57.986364+00", "endTime":"2020-05-22 18:29:57.986467+00", "transactionId":"0", "dbProtocol":"MySQL", "netProtocol":"TCP", "errorMessage":"", "class":"MAIN" } ] }

Nell'esempio seguente viene illustrato l'evento corrispondente con un valore class pari a AUX.

{ "type":"DatabaseActivityMonitoringRecord", "instanceId":"db-some_id", "databaseActivityEventList":[ { "logTime":"2020-05-22 18:29:57.986399+00", "type":"record", "clientApplication":null, "pid":2830, "dbUserName":"master", "databaseName":"test", "remoteHost":"localhost", "remotePort":"11054", "command":"READ", "commandText":"test1", "paramList":null, "objectType":"TABLE", "objectName":"test1", "statementId":65469218, "substatementId":2, "exitCode":"", "sessionId":"726571", "rowCount":0, "serverHost":"master", "serverType":"MySQL", "serviceName":"Amazon Aurora MySQL", "serverVersion":"MySQL 5.7.12", "startTime":"2020-05-22 18:29:57.986364+00", "endTime":"2020-05-22 18:29:57.986399+00", "transactionId":"0", "dbProtocol":"MySQL", "netProtocol":"TCP", "errorMessage":"", "class":"AUX" } ] }

DatabaseActivityMonitoringRecordsJSONoggetto

I record degli eventi di attività del database si trovano in un JSON oggetto che contiene le seguenti informazioni.

JSONCampo Tipo di dati Descrizione

type

stringa

Il tipo di JSON record. Il valore è DatabaseActivityMonitoringRecords.

version stringa La versione dei record di monitoraggio delle attività del database.

La versione dei record di attività del database generati dipende dalla versione del motore del cluster database.

  • I record delle attività del database della versione 1.1 vengono generati per i cluster Aurora Postgre SQL DB che eseguono le versioni del motore 10.10 e successive, le versioni secondarie e le versioni del motore 11.5 e successive.

  • I record delle attività del database versione 1.0 vengono generati per i cluster Aurora Postgre SQL DB che eseguono le versioni 10.7 e 11.4 del motore.

Tutti i seguenti campi sono nella versione 1.0 e nella versione 1.1, tranne dove espressamente indicato.

databaseActivityEvents

string

Un JSON oggetto che contiene gli eventi di attività.

key string Una chiave di crittografia utilizzata per decrittare databaseActivityEventArray di elenchi JSON

databaseActivityEvents JSONOggetto

L'databaseActivityEventsJSONoggetto contiene le seguenti informazioni.

Campi di primo livello del JSON record

Ogni evento nel registro di controllo è racchiuso in un record in JSON formato. Questo record contiene i seguenti campi.

type

Questo campo ha sempre il valore DatabaseActivityMonitoringRecords.

versione

Questo campo rappresenta la versione del protocollo o del contratto di dati del flusso di attività del database. Definisce quali campi sono disponibili.

La versione 1.0 rappresenta il supporto originale dei flussi di attività dei dati per le versioni 10.7 e 11.4 di Aurora SQL Postgre. La versione 1.1 rappresenta il supporto dei flussi di attività dei dati per Aurora SQL Postgre versioni 10.10 e successive e Aurora Postgre 11.5 e successive. SQL La versione 1.1 include i campi aggiuntivi errorMessage e startTime. La versione 1.2 rappresenta il supporto dei flussi di attività dei dati per Aurora SQL My 2.08 e versioni successive. La versione 1.2 include i campi aggiuntivi endTime e transactionId.

databaseActivityEvents

Stringa crittografata che rappresenta uno o più eventi di attività. È rappresentato come un array di byte base64. Quando si decrittografa la stringa, il risultato è un record in JSON formato con campi, come illustrato negli esempi di questa sezione.

Chiave

Chiave dati crittografata utilizzata per crittografare la stringa databaseActivityEvents. È lo stesso AWS KMS key che hai fornito quando hai avviato il flusso di attività del database.

Nell'esempio seguente viene illustrato il formato di questo record.

{ "type":"DatabaseActivityMonitoringRecords", "version":"1.1", "databaseActivityEvents":"encrypted audit records", "key":"encrypted key" }

Per decrittografare il contenuto del campo databaseActivityEvents, procedere come segue:

  1. Decrittografa il valore nel key JSON campo utilizzando la KMS chiave fornita all'avvio del flusso di attività del database. In questo modo viene restituita la chiave di crittografia dei dati in testo non crittografato.

  2. Base64 decodifica il valore nel databaseActivityEvents JSON campo per ottenere il testo cifrato, in formato binario, del payload di controllo.

  3. Decifrare il testo cifrato binario con la chiave di crittografia dei dati decodificata nel primo passaggio.

  4. Decomprimere il payload decrittografato.

    • Il payload crittografato è nel campo databaseActivityEvents.

    • Il campo databaseActivityEventList contiene una matrice di record di controllo. I campi type nella matrice possono essere record o heartbeat.

Il record dell'evento di attività del registro di controllo è un oggetto che contiene le seguenti informazioni. JSON

JSONCampo Tipo di dati Descrizione

type

stringa

Il tipo di JSON record. Il valore è DatabaseActivityMonitoringRecord.

clusterId stringa Identificatore di risorsa cluster di database. Corrisponde all'attributo cluster database DbClusterResourceId.
instanceId stringa Identificatore della risorsa istanza database. Corrisponde all'attributo di istanza database DbiResourceId.

databaseActivityEventArray di elenchi JSON

stringa

Matrice di record di controllo delle attività o messaggi heartbeat.