Logging-Verhalten konfigurieren

Um das pgAudit-Loggingverhalten zu konfigurieren, legen Sie das Flag pgaudit.log oder das Flag pgaudit.role fest:

  • Legen Sie pgaudit.log fest, um das Sitzungsprotokollieren zu aktivieren und zu konfigurieren. Sie können dieses Flag für eine Instanz, eine Datenbank oder eine Rolle festlegen, um den Umfang der Vorgänge zu definieren, die von pgAudit protokolliert werden. Sie legen das Flag auf einen Wert fest, der den Typ der Vorgänge definiert, die von pgAudit protokolliert werden.

  • Legen Sie pgaudit.role fest, um das Objekt-Logging zu aktivieren und zu konfigurieren. Dabei werden Anweisungen protokolliert, die sich auf bestimmte Beziehungen auswirken. Sie legen dieses Flag auf den Namen einer Rolle fest und gewähren dann Zugriff auf bestimmte Objekte, die protokolliert werden sollen. Der Kontoauszug enthält SELECT, INSERT, UPDATE, and DELETE. pgAudit protokolliert alle Vorgänge, die der Kombination aus Zugriff und Objekt entsprechen, die von einem beliebigen Nutzer ausgeführt werden.

In den folgenden Abschnitten finden Sie Beispiele für die Optionen zum Festlegen des pgAudit-Logging-Verhaltens.

Informationen zu weiteren Funktionen der Erweiterung finden Sie in der pgAudit-Dokumentation.

Sitzungs-Audit-Logging für alle Datenbanken in einer Instanz konfigurieren

Wenn Sie die Prüfung für alle Datenbanken in einer Instanz konfigurieren möchten, legen Sie das Flag pgaudit.log auf Instanzebene fest.

Beispiel:

  • So aktivieren Sie die Prüfung für alle Vorgänge für alle Datenbanken in einer Instanz:
    gcloud alloydb instances update my-instance \
        --database-flags pgaudit.log=all[,flag2=value2...] \
        --region=us-central1 \
        --cluster=my-cluster \
        --project=my-project
    
  • So aktivieren Sie die Prüfung nur für Lese- und Schreibvorgänge für alle Datenbanken in einer Instanz:
    gcloud alloydb instances update my-instance \
        --database-flags=^:^pgaudit.log=read,write[:flag2=value2...] \
        --region=us-central1 \
        --cluster=my-cluster \
        --project=my-project
    

Beachten Sie die Verwendung der Syntax für alternative Trennzeichen, mit der Sie Kommas in einem Flag-Wert verwenden können.

Informationen zum Konfigurieren von Datenbank-Flags finden Sie unter Datenbank-Flags konfigurieren.

Sitzungs-Audit-Logging für eine bestimmte Datenbank konfigurieren

Sie können die Prüfung für eine bestimmte Datenbank konfigurieren, indem Sie das Flag pgaudit.log auf Datenbankebene festlegen.

So aktivieren Sie beispielsweise die Lese-/Schreibprüfung für eine Datenbank namens „finance“:

finance=> ALTER DATABASE finance SET pgaudit.log = 'read,write';

Sitzungs-Audit-Logging für einen einzelnen Nutzer konfigurieren

Sie können die Prüfung für einen bestimmten Nutzer aktivieren, indem Sie pgaudit.log auf Rollenebene festlegen.

So legen Sie beispielsweise die Prüfung für alle Datenbankvorgänge fest, die vom Nutzer Alice ausgeführt werden:

finance=> ALTER ROLE alice SET pgaudit.log = 'all';

Audit-Logging für Objekte konfigurieren

Die Prüfung für eine Beziehung ist weniger umfassend als die Prüfung für eine bestimmte Datenbank. Beim Prüfen einer Beziehung wird dem Parameter pgaudit.role eine spezielle Prüferrolle zugewiesen. Bei diesem Vorgang werden alle Objekte oder Beziehungen protokolliert, die dieser Rolle zugewiesen werden.

Beispiel:

  • So konfigurieren Sie die Prüfung für alle SELECT-Abfragen in der Beziehung „salary“ in der Mitarbeiterdatenbank:
    employee=> CREATE ROLE auditor WITH NOLOGIN;
    employee=> ALTER DATABASE employee SET pgaudit.role = 'auditor';
    employee=> GRANT SELECT ON salary TO auditor;
    

Sie können auch nur einen Teil der Spalten für eine bestimmte Beziehung prüfen.

Beispiel:

  • So konfigurieren Sie das Audit-Logging, das nur erfolgt, wenn auf die Spalten income und tax_status über die Gehaltsbeziehung zugegriffen wird:
    employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;