Überprüfen von Datenbankobjekten - 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.

Überprüfen von Datenbankobjekten

Wenn pgAudit auf Ihrem DB-Cluster von Aurora PostgreSQL eingerichtet und für Ihre Anforderungen konfiguriert ist, werden detailliertere Informationen im PostgreSQL-Protokoll erfasst. Während die PostgreSQL-Standardprotokollierungskonfiguration beispielsweise das Datum und die Uhrzeit angibt, zu der eine Änderung in einer Datenbanktabelle vorgenommen wurde, kann der Protokolleintrag mit 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 Einrichten der pgAudit-Erweiterung erstellt haben.

Bild der PostgreSQL-Protokolldatei nach dem Einrichten von pgAudit.

Wie in diesem Beispiel gezeigt, enthält die Zeile „LOG: AUDIT: SESSION“ unter anderem Informationen über die Tabelle und deren Schema.

So richten Sie die Objektüberwachung ein
  1. Stellen Sie über psql eine Verbindung mit der Writer-Instance Ihres DB-Clusters von Aurora PostgreSQL her.

    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 die AWS CLI, um die Audit-Protokollparameter in Ihrer benutzerdefinierten Parametergruppe zu ändern.

  4. Verwenden Sie den folgenden AWS CLI-Befehl, um den pgaudit.role-Parameter auf rds_pgaudit festzulegen. 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. Starten Sie die Writer-Instance Ihres DB-Clusters von Aurora PostgreSQL mit dem folgenden AWS CLI-Befehl neu, damit Ihre Änderungen der Parameter wirksam werden.

    aws rds reboot-db-instance \ --db-instance-identifier writer-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 überprü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 Überwachen von Amazon Aurora-Protokolldateien.

Weitere Informationen zur pgAudit-Erweiterung finden Sie unter pgAudit auf GitHub.