Wenn Sie steuern möchten, welche SQL-Vorgänge und Datenbankobjekte in Ihren Audit-Logs aufgezeichnet werden, können Sie das pgAudit-Sitzungs- und Objekt-Logging in AlloyDB for PostgreSQL konfigurieren. Setzen Sie dazu das Flag pgaudit.log oder pgaudit.role:
Legen Sie
pgaudit.logfest, um das Sitzungs-Logging 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 pgAudit protokolliert.Legen Sie
pgaudit.rolefest, um das Objekt-Logging zu aktivieren und zu konfigurieren. Dadurch werden Anweisungen protokolliert, die sich auf bestimmte Beziehungen auswirken. Sie legen dieses Flag auf den Namen einer Rolle fest und gewähren dann Anweisungszugriff auf bestimmte Objekte, die protokolliert werden sollen. Der Zugriff auf Kontoauszüge umfasstSELECT,INSERT,UPDATEundDELETE. 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, setzen Sie das Flag pgaudit.log auf Instanzebene.
Beispiel:
- So aktivieren Sie die Prüfung für alle Vorgänge in allen Datenbanken 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 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 Flag pgaudit.log auf Datenbankebene festlegen.
So aktivieren Sie beispielsweise die Lese- und Schreibprüfung für eine Datenbank, „finance“:
ALTER DATABASE finance SET pgaudit.log = 'read,write';
Sitzungsaudit-Logging für einen einzelnen Nutzer konfigurieren
Sie können die Prüfung für einen bestimmten Nutzer aktivieren, indem Sie das Flag 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:
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. Wenn Sie eine Beziehung prüfen, weist das System dem Parameter pgaudit.role eine eindeutige Auditor-Rolle zu. Bei diesem Vorgang werden alle Objekte oder Beziehungen protokolliert, die dieser Rolle gewährt werden.
Beispiel:
- So konfigurieren Sie die Prüfung für alle
SELECT-Abfragen für die Beziehung „salary“ in der Datenbank „employee“:CREATE ROLE auditor WITH NOLOGIN; ALTER DATABASE employee SET pgaudit.role = 'auditor'; 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
incomeundtax_statusüber die Gehaltsbeziehung zugegriffen wird:GRANT SELECT(income, tax_status) ON salary TO auditor;