Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Inhalt des Auditprotokolls und Beispiele für Datenbankaktivitätsströme
Überwachte Ereignisse werden im Datenbank-Aktivitätsstream als JSON Zeichenketten dargestellt. Die Struktur besteht aus einem JSON Objekt, das a enthältDatabaseActivityMonitoringRecord
, das wiederum eine databaseActivityEventList
Reihe von Aktivitätsereignissen enthält.
Themen
Prüfungsprotokollbeispiele für Aktivitäts-Streams
Im Folgenden finden Sie Beispiele für entschlüsselte JSON Auditprotokolle von Aktivitätsereignissen.
Beispiel Aufzeichnung des Aktivitätsereignisses einer Aurora SQL CONNECT SQL
Der folgende Aktivitätsereignisdatensatz zeigt eine Anmeldung unter Verwendung einer CONNECT
SQL Anweisung (command
) durch einen PSQL-Client (clientApplication
) .
{ "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" }
Beispiel Aufzeichnung des Aktivitätsereignisses einer SQL CONNECT SQL Aussage von Aurora My
Der folgende Aktivitätsereignisdatensatz zeigt eine Anmeldung mithilfe einer CONNECT
SQL Anweisung (command
) durch einen MySQL-Client (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" } ] }
Beispiel Aufzeichnung eines Aktivitätsereignisses Aurora Postgre-Erklärung SQL CREATE TABLE
Das folgende Beispiel zeigt ein CREATE TABLE
Ereignis für Aurora Postgre, SQL .
{ "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" }
Beispiel Aufzeichnung des Aktivitätsereignisses einer SQL CREATE TABLE Aussage von Aurora My
Das folgende Beispiel zeigt eine CREATE TABLE
Anweisung für Aurora MySQL. Die Operation wird als zwei separate Ereignisdatensätze dargestellt. Das eine Ereignis verfügt über einen Wert "class":"MAIN"
. Das andere über einen Wert "class":"AUX"
. Die Nachrichten können in beliebiger Reihenfolge eintreffen. Das logTime
-Feld des MAIN
-Ereignisses ist immer früher als die logTime
-Felder der entsprechenden AUX
-Ereignisse.
Im folgenden Beispiel wird das Ereignis mit einem class
-Wert von MAIN
gezeigt.
{ "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" } ] }
Im folgenden Beispiel wird das entsprechende Ereignis mit einem class
-Wert von AUX
gezeigt.
{ "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" } ] }
Beispiel Aufzeichnung des Aktivitätsereignisses einer Aurora SQL SELECT
Das folgende Beispiel zeigt ein SELECT
-Ereignis .
{ "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" } } ] }
Beispiel Aufzeichnung des Aktivitätsereignisses einer SQL SELECT Aussage von Aurora My
Das folgende Beispiel zeigt ein SELECT
-Ereignis.
Im folgenden Beispiel wird das Ereignis mit einem class
-Wert von MAIN
gezeigt.
{ "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" } ] }
Im folgenden Beispiel wird das entsprechende Ereignis mit einem class
-Wert von AUX
gezeigt.
{ "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" } ] }
DatabaseActivityMonitoringRecordsJSONObjekt
Die Datensätze der Datenbankaktivitätsereignisse befinden sich in einem JSON Objekt, das die folgenden Informationen enthält.
JSONFeld | Datentyp | Beschreibung |
---|---|---|
|
Zeichenfolge |
Die Art des JSON Datensatzes. Der Wert ist |
version |
string | Die Version der Datenbank-Aktivitätsüberwachungsdatensätze. Die Version der generierten Datenbank-Aktivitätsdatensätze hängt von der Engine-Version des DB-Clusters ab:
Alle folgenden Felder befinden sich sowohl in Version 1.0 als auch in Version 1.1, sofern nicht ausdrücklich angegeben. |
Zeichenfolge |
Ein JSON Objekt, das die Aktivitätsereignisse enthält. |
|
Schlüssel | Zeichenfolge | Ein Verschlüsselungsschlüssel, den Sie zum Entschlüsseln des databaseActivityEventJSONArray auflisten verwenden |
databaseActivityEvents JSONObjekt
Das databaseActivityEvents
JSON Objekt enthält die folgenden Informationen.
Felder der obersten Ebene im Datensatz JSON
Jedes Ereignis im Auditprotokoll ist in einem Datensatz im JSON Format zusammengefasst. Dieser Datensatz enthält die folgenden Felder.
- type
-
Dieses Feld hat immer den Wert
DatabaseActivityMonitoringRecords
. - Version
-
Dieses Feld stellt die Version des Datenprotokolls oder des Vertrags für die Datenbankaktivität dar. Es definiert, welche Felder verfügbar sind.
Version 1.0 stellt die ursprüngliche Unterstützung von Datenaktivitätsströmen für die Aurora SQL Postgre-Versionen 10.7 und 11.4 dar. Version 1.1 stellt die Unterstützung von Datenaktivitätsströmen für Aurora SQL Postgre-Versionen 10.10 und höher und Aurora Postgre SQL 11.5 und höher dar. Version 1.1 enthält die zusätzlichen Felder
errorMessage
undstartTime
. Version 1.2 stellt die Unterstützung von Datenaktivitätsströmen für Aurora My SQL 2.08 und höher dar. Version 1.2 enthält die zusätzlichen FelderendTime
undtransactionId
. - databaseActivityEvents
-
Eine verschlüsselte Zeichenfolge, die ein oder mehrere Aktivitätsereignisse darstellt. Sie wird als Base64-Byte-Array dargestellt. Wenn Sie die Zeichenfolge entschlüsseln, ist das Ergebnis ein Datensatz im JSON Format mit Feldern, wie in den Beispielen in diesem Abschnitt gezeigt.
- Schlüssel
-
Der verschlüsselte Datenschlüssel, der zum Verschlüsseln der
databaseActivityEvents
-Zeichenfolge verwendet wird. Dies ist derselbe AWS KMS key , den Sie beim Starten des Datenbank-Aktivitätsstreams angegeben haben.
Im folgenden Beispiel wird das Format dieses Datensatzes gezeigt.
{ "type":"DatabaseActivityMonitoringRecords", "version":"1.1", "databaseActivityEvents":"
encrypted audit records
", "key":"encrypted key
" }
Führen Sie die folgenden Schritte aus, um den Inhalt des databaseActivityEvents
-Feldes zu entschlüsseln:
-
Entschlüsseln Sie den Wert im
key
JSON Feld mit dem KMS Schlüssel, den Sie beim Starten der Datenbank-Aktivitätsdatenbank angegeben haben. Dadurch wird der Datenverschlüsselungsschlüssel im Klartext zurückgegeben. -
Den Wert im
databaseActivityEvents
JSON Feld mit Base64 dekodieren, um den Geheimtext der Audit-Payload im Binärformat zu erhalten. -
Entschlüsseln Sie den binären Verschlüsselungstext mit dem Datenverschlüsselungsschlüssel, den Sie im ersten Schritt dekodiert haben.
-
Dekomprimieren Sie die entschlüsselte Nutzlast.
-
Die verschlüsselte Nutzlast befindet sich im
databaseActivityEvents
-Feld. -
Das
databaseActivityEventList
-Feld enthält ein Array von Prüfdatensätzen. Dietype
-Felder im Array könnenrecord
oder seinheartbeat
.
-
Der Aktivitätsdatensatz des Auditprotokolls ist ein JSON Objekt, das die folgenden Informationen enthält.
JSONFeld | Datentyp | Beschreibung |
---|---|---|
|
Zeichenfolge |
Die Art des JSON Datensatzes. Der Wert ist |
clusterId |
string | Die Ressourcen-ID des DB-Clusters. Sie entspricht dem DB-Clusterattribut DbClusterResourceId . |
instanceId |
string | Die Ressourcen-ID der DB-Instance. Sie dem DB-Instance-Attribut DbiResourceId . |
string |
Ein Array von Aktivitätsprüfdatensätzen oder Heartbeat-Nachrichten. |