Per configurare il comportamento di logging di pgAudit, imposta il flag pgaudit.log
o il flag pgaudit.role
:
Imposta
pgaudit.log
per abilitare e configurare la registrazione 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.role
per attivare e configurare la registrazione degli oggetti, che registra le istruzioni che influiscono su determinate relazioni. Imposta questo flag sul nome di un ruolo, quindi concedi l'accesso all'istruzione a oggetti specifici che vuoi registrare. L'accesso all'estratto conto includeSELECT, INSERT, UPDATE, and DELETE
. pgAudit registra tutte le operazioni che corrispondono alla combinazione di accesso e oggetto eseguiti 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.
Configurare 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 il controllo 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 il controllo 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, vedi Configurare 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 il controllo in lettura/scrittura per un database, finanza:
finance=> ALTER DATABASE finance SET pgaudit.log = 'read,write';
Configurare l'audit logging delle sessioni per un singolo utente
Puoi attivare l'audit per un utente specifico impostando pgaudit.log
a livello di ruolo.
Ad esempio, per impostare il controllo di tutte le operazioni del database eseguite dall'utente Alice:
finance=> ALTER ROLE alice SET pgaudit.log = 'all';
Configura l'audit logging degli oggetti
Il controllo di una relazione è più ristretto 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
SELECT
sulla relazione salariale all'interno del database dei dipendenti:employee=> CREATE ROLE auditor WITH NOLOGIN;
employee=> ALTER DATABASE employee SET pgaudit.role = 'auditor';
employee=> GRANT SELECT ON salary TO auditor;
Puoi anche controllare un sottoinsieme di colonne per una determinata relazione.
Ad esempio:
- Per configurare la registrazione degli audit che si verifica solo quando si accede alle colonne
income
etax_status
dalla relazione salariale:employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;