Überprüfen von Datenbankobjekten - Amazon Relational Database Service

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.

Überprüfen von Datenbankobjekten

Wenn pgAudit es auf Ihrem für die SQL Postgre-DB-Instance eingerichtet und für Ihre Anforderungen konfiguriert ist, werden detailliertere Informationen im SQL Postgre-Protokoll erfasst. Während die standardmäßige SQL Postgre-Logging-Konfiguration beispielsweise das Datum und die Uhrzeit einer Änderung in einer Datenbanktabelle identifiziert, kann der Protokolleintrag bei der pgAudit Erweiterung das Schema, den Benutzer, der die Änderung vorgenommen hat, und andere Details enthalten, je nachdem, wie die Erweiterungsparameter konfiguriert sind. Sie können das Auditing einrichten, um Änderungen wie folgt zu verfolgen.

  • Für jede Sitzung, nach Benutzer. Auf der Sitzungsebene können Sie den vollständig qualifizierten Befehlstext erfassen.

  • Für jedes Objekt, nach Benutzer und nach Datenbank.

Die Objektüberwachungsfunktion wird aktiviert, wenn Sie die rds_pgaudit-Rolle in Ihrem System erstellen und diese Rolle dann dem pgaudit.role-Parameter in Ihrer benutzerdefinierten Parametergruppe hinzufügen. Standardmäßig ist der pgaudit.role-Parameter nicht festgelegt und der einzig zulässige Wert ist rds_pgaudit. Bei den folgenden Schritten wird davon ausgegangen, dass pgaudit initialisiert wurde und Sie die pgaudit-Erweiterung gemäß den Schritten unter Einrichtung der pgAudit Erweiterung erstellt haben.

Bild der SQL Postgre-Protokolldatei nach der Einrichtung. pgAudit

Wie in diesem Beispiel gezeigt, enthält die Zeile SESSION "LOGAUDIT::" unter anderem Informationen über die Tabelle und ihr Schema.

So richten Sie die Objektüberwachung ein
  1. Wird verwendetpsql, um eine Verbindung zur herzustellen. RDSfür die SQL Postgre-DB-Instance.

    psql --host=your-instance-name.aws-region.rds.amazonaws.com --port=5432 --username=postgrespostgres --password --dbname=labdb
  2. Erstellen Sie mithilfe des folgenden Befehls eine Datenbankrolle mit dem Namen rds_pgaudit.

    labdb=> CREATE ROLE rds_pgaudit; CREATE ROLE labdb=>
  3. Schließen Sie die psql-Sitzung.

    labdb=> \q

    Verwenden Sie in den nächsten Schritten den AWS CLI um die Audit-Log-Parameter in Ihrer benutzerdefinierten Parametergruppe zu ändern.

  4. Verwenden Sie Folgendes AWS CLI Befehl, auf den der pgaudit.role Parameter gesetzt werden sollrds_pgaudit. Standardmäßig ist dieser Parameter leer und der einzig zulässige Wert ist rds_pgaudit.

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=pgaudit.role,ParameterValue=rds_pgaudit,ApplyMethod=pending-reboot" \ --region aws-region
  5. Verwenden Sie Folgendes AWS CLI Befehl, um die für die SQL Postgre-DB-Instance neu zu starten, damit Ihre Änderungen an den Parametern wirksam werden.

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region
  6. Führen Sie den folgenden Befehl aus, um zu bestätigen, dass pgaudit.role auf rds_pgaudit festgelegt ist.

    SHOW pgaudit.role; pgaudit.role ------------------ rds_pgaudit

Um die pgAudit Protokollierung zu testen, können Sie mehrere Beispielbefehle ausführen, die Sie prüfen möchten. Sie könnten beispielsweise die folgenden Befehle ausführen.

CREATE TABLE t1 (id int); GRANT SELECT ON t1 TO rds_pgaudit; SELECT * FROM t1; id ---- (0 rows)

Die Datenbankprotokolle sollten dann einen Eintrag ähnlich dem folgenden enthalten.

... 2017-06-12 19:09:49 UTC:...:rds_test@postgres:[11701]:LOG: AUDIT: OBJECT,1,1,READ,SELECT,TABLE,public.t1,select * from t1; ...

Weitere Informationen zur Anzeige der Protokolle finden Sie unter Überwachung von Amazon RDS Amazon.

Weitere Informationen über die pgAudit Erweiterung finden Sie pgAuditunter GitHub.