Per configurare il comportamento di registrazione di pgAudit, imposta il flag pgaudit.log
o il flag pgaudit.role
:
Imposta
pgaudit.log
per abilitare 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.role
per attivare e configurare il logging degli oggetti, che registra le istruzioni che influiscono su relazioni specifiche. Imposta questo flag sul nome di un ruolo e poi concedi l'accesso alle istruzioni per oggetti specifici di cui vuoi registrare gli accessi. L'accesso all'estratto conto includeSELECT, INSERT, UPDATE, and DELETE
. pgAudit registra tutte le operazioni che corrispondono alla combinazione di accesso e oggetto eseguita da qualsiasi utente.
Le sezioni seguenti forniscono esempi che mostrano le opzioni per impostare il comportamento di registrazione 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 il controllo per tutti i database di un'istanza, imposta il flag pgaudit.log
a livello di istanza.
Ad esempio:
- Per attivare 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 attivare 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 ti consente di utilizzare i caratteri di virgola all'interno di un valore del flag.
Per informazioni sulla configurazione dei flag di database, consulta Configurare i flag di database.
Configurare l'audit logging delle sessioni per un database specifico
Puoi configurare il controllo per un database specifico impostando il flag pgaudit.log
a livello di database.
Ad esempio, per attivare il controllo di 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 il controllo per un utente specifico impostando pgaudit.log
a livello di ruolo.
Ad esempio, per impostare il controllo per tutte le operazioni del database eseguite dall'utente, Alice:
finance=> ALTER ROLE alice SET pgaudit.log = 'all';
Configurare l'audit logging degli oggetti
Il controllo di una relazione è più limitato rispetto al controllo di un database specifico. Quando effettui un controllo per una relazione, il sistema assegna un ruolo di revisore univoco al parametro pgaudit.role
. Questa operazione registra qualsiasi oggetto o relazione concessa a questo ruolo.
Ad esempio:
- Per configurare il controllo per tutte le query
SELECT
sulla relazione stipendio 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 eseguire il controllo di un sottoinsieme di colonne per una determinata relazione.
Ad esempio:
- Per configurare la registrazione dei controlli che si verifica solo quando si accede alle colonne
income
etax_status
dalla relazione dello stipendio:employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;