Per controllare quali operazioni SQL e oggetti di database vengono registrati negli audit log, puoi configurare il logging di sessioni e oggetti pgAudit in AlloyDB per PostgreSQL impostando il flag pgaudit.log o il flag pgaudit.role:
Imposta
pgaudit.logper attivare e configurare il logging delle sessioni. Puoi impostare questo flag su un'istanza, un database o un ruolo per definire l'ambito delle operazioni registrate da pgAudit. Imposta il flag su un valore che definisce il tipo di operazioni registrate da pgAudit.Imposta
pgaudit.roleper attivare e configurare il logging degli oggetti, che registra le istruzioni di log che influiscono su relazioni specifiche. Imposta questo flag sul nome di un ruolo, quindi concedi l'accesso alle istruzioni a oggetti specifici di cui vuoi eseguire il logging. L'accesso agli estratti conto includeSELECT,INSERT,UPDATEeDELETE. pgAudit registra tutte le operazioni che corrispondono alla combinazione di accesso e oggetto eseguite da qualsiasi utente.
Le sezioni seguenti forniscono esempi che mostrano le opzioni per impostare il comportamento di logging di pgAudit.
Per ulteriori funzionalità dell'estensione, consulta la documentazione di pgAudit.
Configura l'audit logging delle sessioni per tutti i database di un'istanza
Per configurare l'audit per tutti i database di un'istanza, imposta il flag pgaudit.log a livello di istanza.
Ad esempio:
- Per abilitare l'audit per tutte le operazioni su tutti i database di un'istanza:
gcloud alloydb instances update my-instance \ --database-flags pgaudit.log=all[,flag2=value2...] \ --region=us-central1 \ --cluster=my-cluster \ --project=my-project - Per abilitare l'audit solo per le operazioni di lettura e scrittura su tutti i database di un'istanza:
gcloud alloydb instances update my-instance \ --database-flags=^:^pgaudit.log=read,write[:flag2=value2...] \ --region=us-central1 \ --cluster=my-cluster \ --project=my-project
Tieni presente l'utilizzo della sintassi del delimitatore alternativo, che consente di utilizzare i caratteri virgola all'interno di un valore del flag.
Per informazioni sulla configurazione dei flag di database, consulta Configura i flag di database.
Configura l'audit logging delle sessioni per un database specifico
Puoi configurare l'audit per un database specifico impostando il flag pgaudit.log a livello di database.
Ad esempio, per abilitare l'audit di lettura e scrittura per un database, finance:
ALTER DATABASE finance SET pgaudit.log = 'read,write';
Configura l'audit logging delle sessioni per un singolo utente
Puoi attivare l'audit per un utente specifico impostando il flag pgaudit.log a livello di ruolo.
Ad esempio, per impostare l'audit per tutte le operazioni sul database eseguite dall'utente Alice:
ALTER ROLE alice SET pgaudit.log = 'all';
Configura l'audit logging degli oggetti
Il controllo di una relazione è più limitato rispetto al controllo di un database specifico. Quando esegui l'audit di una relazione, il sistema assegna un ruolo di revisore univoco al parametro pgaudit.role. Questa operazione registra qualsiasi oggetto o relazione concesso a questo ruolo.
Ad esempio:
- Per configurare l'audit per tutte le query
SELECTsulla relazione dello stipendio all'interno del database dei dipendenti:CREATE ROLE auditor WITH NOLOGIN; ALTER DATABASE employee SET pgaudit.role = 'auditor'; GRANT SELECT ON salary TO auditor;
Puoi anche controllare un sottoinsieme di colonne per una determinata relazione.
Ad esempio:
- Per configurare l'audit logging che si verifica solo quando si accede alle colonne
incomeetax_statusdalla relazione salary:GRANT SELECT(income, tax_status) ON salary TO auditor;