databaseActivityEventJSONListenarray für Datenbank-Aktivitätsstreams - Amazon Aurora

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.

databaseActivityEventJSONListenarray für Datenbank-Aktivitätsstreams

Die Nutzlast des Auditprotokolls ist ein verschlüsseltes databaseActivityEventList JSON Array. In der folgenden Tabelle sind die Felder für jedes Aktivitätsereignis im entschlüsselten Array DatabaseActivityEventList eines Prüfprotokolls alphabetisch aufgelistet. Die Felder unterscheiden sich je nachdem, ob Sie Aurora Postgre SQL oder Aurora My SQL verwenden. Näheres entnehmen Sie bitte der Tabelle, die für Ihre Datenbank-Engine gilt.

Wichtig

Die Ereignisstruktur kann sich ändern. Aurora könnte in future neue Bereiche zu Aktivitätsereignissen hinzufügen. Stellen Sie in Anwendungen, die die JSON Daten analysieren, sicher, dass Ihr Code unbekannte Feldnamen ignorieren oder entsprechende Maßnahmen ergreifen kann.

databaseActivityEventFelder für Aurora Postgre auflisten SQL

Im Folgenden sind databaseActivityEventList Felder für Aurora Postgre aufgeführtSQL.

Feld Datentyp Beschreibung
class string

Die Aktivitätsereignisklasse. Gültige Werte für Aurora Postgre SQL sind die folgenden:

  • ALL

  • CONNECT – Ein Verbindungs- oder Verbindungstrennungsereignis.

  • DDL— Eine DDL Anweisung, die nicht in der Liste der Anweisungen für die ROLE Klasse enthalten ist.

  • FUNCTION – ein Funktionsaufruf oder ein DO-Block.

  • MISC – ein sonstiger Befehl wie z. B. DISCARD, FETCH, CHECKPOINT oder VACUUM.

  • NONE

  • READ – eine Anweisung SELECT oder COPY, wenn es sich bei der Quelle um eine Relation oder Abfrage handelt.

  • ROLE – eine Anweisung in Zusammenhang mit Rollen und Berechtigungen wie z. B. GRANT, REVOKE und CREATE/ALTER/DROP ROLE.

  • WRITE – eine Anweisung INSERT, UPDATE, DELETE, TRUNCATE, oder COPY, wenn das Ziel eine Relation ist.

clientApplication string Die Anwendung, die der Client laut Meldung für die Verbindung verwendet hat. Der Client muss diese Informationen nicht angeben, der Wert kann daher Null sein.
command Zeichenfolge Der Name des SQL Befehls ohne Befehlsdetails.
commandText Zeichenfolge

Die tatsächliche SQL Anweisung, die vom Benutzer übergeben wurde. Für Aurora Postgre SQL ist der Wert identisch mit der ursprünglichen SQL Anweisung. Dieses Feld wird für alle Arten von Datensätzen verwendet, mit Ausnahme von Verbindungs- oder Verbindungstrennungsdatensätzen, bei denen der Wert Null ist.

Wichtig

Der vollständige SQL Text jeder Aussage ist im Activity Stream-Audit-Protokoll sichtbar, einschließlich aller sensiblen Daten. Passwörter von Datenbankbenutzern werden jedoch geschwärzt, wenn Aurora sie anhand des Kontextes ermitteln kann, wie in der folgenden SQL Erklärung.

ALTER ROLE role-name WITH password
databaseName Zeichenfolge Die Datenbank, zu der der Benutzer eine Verbindung hergestellt hat.
dbProtocol string Das Datenbankprotokoll, z. B. Postgres 3.0.
dbUserName string Der Datenbankbenutzer, mit dem sich der Client authentifiziert hat.
errorMessage

(nur Datenbank-Aktivitätsdatensätze der Version 1.1)

string

Wenn ein Fehler aufgetreten ist, wird dieses Feld mit der Fehlermeldung gefüllt, die vom DB-Server generiert worden wäre. Der errorMessage-Wert ist null für normale Anweisungen, die nicht zu einem Fehler geführt haben.

Ein Fehler ist definiert als jede Aktivität, die zu einem für den Client sichtbaren SQL Postgre-Fehlerprotokollereignis mit einem Schweregrad von oder höher führen würde. ERROR Weitere Informationen finden Sie unter Schweregrade für Postgre-Nachrichten. SQL Beispielsweise erzeugen Syntaxfehler und Abfrageabbrüche eine Fehlermeldung.

Interne SQL Postgre-Serverfehler, wie z. B. Prozessfehler beim Checkpointer im Hintergrund, erzeugen keine Fehlermeldung. Datensätze für solche Ereignisse werden jedoch weiterhin ausgegeben, unabhängig von der Einstellung des Schweregrads des Protokolls. Dadurch wird verhindert, dass Angreifer die Protokollierung deaktivieren, um eine Erkennung zu vermeiden.

Siehe auch das Feld exitCode.

exitCode int Ein Wert, der für einen Sitzungsbeendigungs-Datensatz verwendet wird. Bei einer sauberen Beendigung ist hier der Beendigungscode enthalten. In manchen Fehlersituationen kann nicht immer ein Beendigungscode erhalten werden. Beispiele dafür sind, ob Postgre einen SQL Befehl ausführt exit() oder ob ein Operator einen Befehl ausführt, wie z. kill -9

Wenn ein Fehler aufgetreten ist, zeigt das exitCode Feld den SQL Fehlercode anSQLSTATE, wie er unter SQLPostgre-Fehlercodes aufgeführt ist.

Siehe auch das Feld errorMessage.

logTime string Ein Zeitstempel wie im Prüfcodepfad aufgezeichnet. Dies stellt die Endzeit der SQL Anweisungsausführung dar. Siehe auch das Feld startTime.
netProtocol string Das Netzwerkkommunikationsprotokoll.
objectName Zeichenfolge Der Name des Datenbankobjekts, falls die SQL Anweisung auf einem Objekt ausgeführt wird. Dieses Feld wird nur verwendet, wenn die SQL Anweisung auf ein Datenbankobjekt angewendet wird. Wenn die SQL Anweisung nicht auf ein Objekt angewendet wird, ist dieser Wert Null.
objectType Zeichenfolge Der Datenbankobjekttyp wie z. B. Tabelle, Index, Ansicht usw. Dieses Feld wird nur verwendet, wenn die SQL Anweisung auf ein Datenbankobjekt angewendet wird. Wenn die SQL Anweisung nicht auf ein Objekt angewendet wird, ist dieser Wert Null. Gültige Werte sind unter anderem:
  • COMPOSITE TYPE

  • FOREIGN TABLE

  • FUNCTION

  • INDEX

  • MATERIALIZED VIEW

  • SEQUENCE

  • TABLE

  • TOAST TABLE

  • VIEW

  • UNKNOWN

paramList Zeichenfolge Ein Array von kommagetrennten Parametern, die an die SQL Anweisung übergeben wurden. Wenn die SQL Anweisung keine Parameter hat, ist dieser Wert ein leeres Array.
pid int Die Prozess-ID des Back-End-Prozesses, der für die Client-Verbindung zugewiesen wird.
remoteHost string Entweder die Client-IP-Adresse oder der Hostname. Welches für Aurora Postgre verwendet wirdSQL, hängt von den log_hostname Parametereinstellungen der Datenbank ab. Der remoteHost Wert beinhaltet auch Aktivitäten des rdsadmin Benutzers [local] und gibt anlocalhost, welche darauf hinweisen.
remotePort Zeichenfolge Die Portnummer des Clients.
rowCount int Die Anzahl der Zeilen, die von der SQL Anweisung zurückgegeben wurden. Wenn eine SELECT Anweisung beispielsweise 10 Zeilen zurückgibt, rowCount ist dies 10. Für INSERT unsere UPDATE Anweisungen rowCount ist 0.
serverHost Zeichenfolge Die Host-IP-Adresse des Datenbankservers. Der serverHost Wert umfasst auch [local] undlocalhost, die auf Aktivitäten des rdsadmin Benutzers hinweisen.
serverType Zeichenfolge Der Datenbankservertyp, z. B PostgreSQL.
serverVersion Zeichenfolge Die Datenbankserverversion, zum Beispiel 2.3.1 für Aurora PostgreSQL.
serviceName Zeichenfolge Der Name des Service, beispielsweise Amazon Aurora PostgreSQL-Compatible edition.
sessionId int Eine pseudoeindeutige Sitzungskennung.
sessionId int Eine pseudoeindeutige Sitzungskennung.
startTime

(nur Datenbank-Aktivitätsdatensätze der Version 1.1)

Zeichenfolge

Der Zeitpunkt, zu dem die Ausführung der SQL Anweisung begann.

Um die ungefähre Ausführungszeit der SQL Anweisung zu berechnen, verwenden SielogTime - startTime. Siehe auch das Feld logTime.

statementId int Eine Kennung für den SQL Kontoauszug des Kunden. Der Zähler befindet sich auf Sitzungsebene und wird mit jeder vom Client eingegebenen SQL Anweisung erhöht.
substatementId int Ein Bezeichner für eine SQL Unteranweisung. Dieser Wert zählt die enthaltenen Unteranweisungen für jede SQL Anweisung, die durch das statementId Feld identifiziert wird.
type Zeichenfolge Der Ereignistyp. Gültige Werte sind record oder heartbeat.

databaseActivityEventFelder für Aurora My auflisten SQL

Die folgenden databaseActivityEventList Felder sind für Aurora MySQL.

Feld Datentyp Beschreibung
class string

Die Aktivitätsereignisklasse.

Gültige Werte für Aurora My SQL sind die folgenden:

  • MAIN— Das Hauptereignis, das eine SQL Aussage darstellt.

  • AUX – ein zusätzliches Ereignis, das zusätzliche Details enthält. Beispielsweise kann eine Anweisung, mit der ein Objekt umbenannt wird, ein Ereignis der Klasse AUX aufweisen, das den neuen Namen wiedergibt.

    Um MAIN- und AUX-Ereignisse zu finden, die derselben Anweisung entsprechen, suchen Sie nach verschiedenen Ereignissen, die dieselben Werte für das Feld pid und für das Feld statementId aufweisen.

clientApplication string Die Anwendung, die der Client laut Meldung für die Verbindung verwendet hat. Der Client muss diese Informationen nicht angeben, der Wert kann daher Null sein.
command Zeichenfolge

Die allgemeine Kategorie der SQL Aussage. Die Werte für dieses Feld hängen vom Wert von a class.

Wenn class MAIN ist, enthalten die Werte Folgendes:

  • CONNECT – wenn eine Client-Sitzung verbunden ist.

  • QUERY— Eine SQL Aussage. Ebenfalls enthalten sind ein oder mehrere Ereignisse mit einem class-Wert von AUX.

  • DISCONNECT – wenn eine Client-Sitzung getrennt wird.

  • FAILED_CONNECT – wenn ein Client versucht, eine Verbindung herzustellen, dies aber nicht möglich ist.

  • CHANGEUSER— Eine Statusänderung, die Teil des SQL Netzwerkprotokolls „Mein Netzwerk“ ist und nicht auf eine von Ihnen abgegebene Anweisung zurückzuführen ist.

Wenn class AUX ist, enthalten die Werte Folgendes:

  • READ – eine Anweisung SELECT oder COPY, wenn es sich bei der Quelle um eine Relation oder Abfrage handelt.

  • WRITE – eine Anweisung INSERT, UPDATE, DELETE, TRUNCATE, oder COPY, wenn das Ziel eine Relation ist.

  • DROP – Löschen eines Objekts

  • CREATE – Erstellen eines Objekts.

  • RENAME – Umbenennen eines Objekts.

  • ALTER – Ändern der Eigenschaften eines Objekts.

commandText Zeichenfolge

Bei Ereignissen mit einem class Wert von steht dieses Feld für die tatsächliche SQL AnweisungMAIN, die vom Benutzer übergeben wurde. Dieses Feld wird für alle Arten von Datensätzen verwendet, mit Ausnahme von Verbindungs- oder Verbindungstrennungsdatensätzen, bei denen der Wert Null ist.

Bei Ereignissen mit einem class-Wert von AUX enthält dieses Feld zusätzliche Informationen über die am Ereignis beteiligten Objekte.

In Aurora My SQL wird Zeichen wie Anführungszeichen ein umgekehrter Schrägstrich vorangestellt, der ein Escape-Zeichen darstellt.

Wichtig

Der vollständige SQL Text jeder Aussage ist im Auditprotokoll sichtbar, einschließlich aller sensiblen Daten. Passwörter von Datenbankbenutzern werden jedoch geschwärzt, wenn Aurora sie anhand des Kontextes ermitteln kann, wie in der folgenden SQL Erklärung.

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

Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.

databaseName Zeichenfolge Die Datenbank, zu der der Benutzer eine Verbindung hergestellt hat.
dbProtocol string Das Datenbankprotokoll. Derzeit gilt dieser Wert immer MySQL für Aurora MySQL.
dbUserName Zeichenfolge Der Datenbankbenutzer, mit dem sich der Client authentifiziert hat.
endTime

(nur Datenbank-Aktivitätsdatensätze der Version 1.2)

Zeichenfolge

Der Zeitpunkt, zu dem die Ausführung der SQL Anweisung beendet wurde. Sie wird im Format Coordinated Universal Time (UTC) dargestellt.

Um die Ausführungszeit der SQL Anweisung zu berechnen, verwenden SieendTime - startTime. Siehe auch das Feld startTime.

errorMessage

(nur Datenbank-Aktivitätsdatensätze der Version 1.1)

string

Wenn ein Fehler aufgetreten ist, wird dieses Feld mit der Fehlermeldung gefüllt, die vom DB-Server generiert worden wäre. Der errorMessage-Wert ist null für normale Anweisungen, die nicht zu einem Fehler geführt haben.

Ein Fehler ist definiert als jede Aktivität, die zu einem für den Client sichtbaren Ereignis Mein SQL Fehlerprotokoll mit einem Schweregrad von ERROR oder höher führen würde. Weitere Informationen finden Sie unter The Error Log im My SQL Reference Manual. Beispielsweise erzeugen Syntaxfehler und Abfrageabbrüche eine Fehlermeldung.

Interne „Mein SQL Server“ -Fehler, wie z. B. im Hintergrund ablaufende Checkpointer-Prozessfehler, führen nicht zu einer Fehlermeldung. Datensätze für solche Ereignisse werden jedoch weiterhin ausgegeben, unabhängig von der Einstellung des Schweregrads des Protokolls. Dadurch wird verhindert, dass Angreifer die Protokollierung deaktivieren, um eine Erkennung zu vermeiden.

Siehe auch das Feld exitCode.

exitCode int Ein Wert, der für einen Sitzungsbeendigungs-Datensatz verwendet wird. Bei einer sauberen Beendigung ist hier der Beendigungscode enthalten. In manchen Fehlersituationen kann nicht immer ein Beendigungscode erhalten werden. In solchen Fällen kann dieser Wert Null oder leer sein.
logTime string Ein Zeitstempel wie im Prüfcodepfad aufgezeichnet. Sie wird im Format Coordinated Universal Time (UTC) dargestellt. Die genaueste Methode zum Berechnen der Anweisungsdauer finden Sie in den Feldern startTime und endTime.
netProtocol string Das Netzwerkkommunikationsprotokoll. Derzeit gilt dieser Wert immer TCP für Aurora MySQL.
objectName Zeichenfolge Der Name des Datenbankobjekts, wenn die SQL Anweisung auf einem Objekt ausgeführt wird. Dieses Feld wird nur verwendet, wenn die SQL Anweisung auf ein Datenbankobjekt angewendet wird. Wenn die SQL Anweisung nicht auf ein Objekt angewendet wird, ist dieser Wert leer. Um den vollständig qualifizierten Namen des Objekts zu erstellen, kombinieren Sie databaseName und objectName. Wenn die Abfrage mehrere Objekte umfasst, kann dieses Feld eine durch Komma getrennte Liste von Namen sein.
objectType string

Der Datenbankobjekttyp, z. B. Tabelle, Index usw. Dieses Feld wird nur verwendet, wenn die SQL Anweisung auf ein Datenbankobjekt angewendet wird. Wenn die SQL Anweisung nicht auf ein Objekt angewendet wird, ist dieser Wert Null.

Zu den gültigen Werten für Aurora My SQL gehören die folgenden:

  • INDEX

  • TABLE

  • UNKNOWN

paramList Zeichenfolge Dieses Feld wird nicht für Aurora My verwendet SQL und ist immer Null.
pid int Die Prozess-ID des Back-End-Prozesses, der für die Client-Verbindung zugewiesen wird. Wenn der Datenbankserver neu gestartet wird, ändert sich die pid und der Zähler für das Feld statementId beginnt von vorn.
remoteHost Zeichenfolge Entweder die IP-Adresse oder der Hostname des Clients, der die SQL Erklärung ausgestellt hat. Welches für Aurora My verwendet wirdSQL, hängt von den skip_name_resolve Parametereinstellungen der Datenbank ab. Der Wert localhost gibt die Aktivität des speziellen Benutzers rdsadmin an.
remotePort string Die Portnummer des Clients.
rowCount int Die Anzahl der Tabellenzeilen, die von der SQL Anweisung betroffen oder abgerufen wurden. Dieses Feld wird nur für SQL Anweisungen verwendet, bei denen es sich um Anweisungen der Data Manipulation Language (DML) handelt. Wenn es sich bei der SQL Anweisung nicht um eine DML Anweisung handelt, ist dieser Wert Null.
serverHost Zeichenfolge Die Datenbankserver-Instance-ID.
serverType Zeichenfolge Der Datenbankservertyp, z. B MySQL.
serverVersion string Die Version des Datenbankservers. Derzeit gilt dieser Wert immer MySQL 5.7.12 für Aurora MySQL.
serviceName Zeichenfolge Der Name des -Dienstes. Derzeit gilt dieser Wert immer Amazon Aurora MySQL für Aurora MySQL.
sessionId int Eine pseudoeindeutige Sitzungskennung.
startTime

(nur Datenbank-Aktivitätsdatensätze der Version 1.1)

Zeichenfolge

Der Zeitpunkt, zu dem die Ausführung der SQL Anweisung begann. Sie wird im Format Coordinated Universal Time (UTC) dargestellt.

Um die Ausführungszeit der SQL Anweisung zu berechnen, verwenden SieendTime - startTime. Siehe auch das Feld endTime.

statementId int Eine Kennung für den SQL Kontoauszug des Kunden. Der Zähler erhöht sich mit jeder vom Kunden eingegebenen SQL Kontoauszug. Der Zähler wird zurückgesetzt, wenn die DB-Instance neu gestartet wird.
substatementId int Ein Bezeichner für eine SQL Unteranweisung. Dieser Wert ist 1 für Ereignisse mit der Klasse MAIN und 2 für Ereignisse mit der Klasse AUX. Verwenden Sie das statementId-Feld, um alle Ereignisse zu identifizieren, die von derselben Anweisung generiert werden.
transactionId

(nur Datenbank-Aktivitätsdatensätze der Version 1.2)

int Eine ID für eine Transaktion.
type string Der Ereignistyp. Gültige Werte sind record oder heartbeat.