Um das Logging-Verhalten von pgAudit zu konfigurieren, legen Sie das Flag pgaudit.log
oder das Flag pgaudit.role
fest:
Setzen Sie
pgaudit.log
, um das Sitzungsprotokoll 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 die Art 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 diese Flag auf den Namen einer Rolle fest und gewähren dann bestimmten Objekten, die protokolliert werden sollen, den Zugriff auf die Anweisung. Der Anweisungszugriff umfasstSELECT, INSERT, UPDATE, and DELETE
. Mit pgAudit werden alle Vorgänge protokolliert, die der Kombination aus Zugriff und Objekt entsprechen, die von einem beliebigen Nutzer ausgeführt wird.
In den folgenden Abschnitten finden Sie Beispiele für die Optionen zum Festlegen des Logging-Verhaltens von pgAudit.
Informationen zu weiteren Funktionen der Erweiterung finden Sie in der pgAudit-Dokumentation.
Sitzungsprotokollierung 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 auf allen 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 alternativen Trennzeichensyntax, mit der Sie Kommazeichen innerhalb eines Flag-Werts 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 pgaudit.log
-Flag auf Datenbankebene festlegen.
So aktivieren Sie beispielsweise die Lese-/Schreibprüfung für die Datenbank „finance“:
finance=> ALTER DATABASE finance SET pgaudit.log = 'read,write';
Sitzungsprotokollierung 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 legt Alice beispielsweise die Prüfung für alle Datenbankvorgänge fest, die von ihr 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 weist das System dem Parameter pgaudit.role
eine eindeutige Prüferrolle zu. Bei diesem Vorgang werden alle Objekte oder Beziehungen protokolliert, die dieser Rolle zugewiesen sind.
Beispiel:
- So konfigurieren Sie die Prüfung für alle
SELECT
-Abfragen in der Beziehung „Gehalt“ 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 so, dass es nur erfolgt, wenn über die Beziehung „Gehalt“ auf die Spalten
income
undtax_status
zugegriffen wird:employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;