Configurer le comportement de journalisation

Pour configurer le comportement de journalisation de pgAudit, définissez l'indicateur pgaudit.log ou pgaudit.role:

  • Définissez pgaudit.log pour activer et configurer la journalisation des sessions. Vous pouvez définir cet indicateur sur une instance, une base de données ou un rôle pour définir la portée des opérations journalisées par pgAudit. Vous définissez l'indicateur sur une valeur qui définit le type d'opérations journalisées par pgAudit.

  • Définissez pgaudit.role pour activer et configurer la journalisation des objets, qui consigne les instructions qui affectent des relations particulières. Vous définissez cet indicateur sur le nom d'un rôle, puis accordez l'accès aux instructions à des objets spécifiques que vous souhaitez consigner. L'accès à l'instruction inclut SELECT, INSERT, UPDATE, and DELETE. pgAudit consigne toutes les opérations correspondant à la combinaison d'accès et d'objet exécutée par n'importe quel utilisateur.

Les sections suivantes fournissent des exemples qui montrent les options permettant de définir le comportement de journalisation de pgAudit.

Pour découvrir les autres fonctionnalités de l'extension, consultez la documentation de pgAudit.

Configurer la journalisation d'audit de session pour toutes les bases de données d'une instance

Pour configurer l'audit pour toutes les bases de données d'une instance, définissez l'indicateur pgaudit.log au niveau de l'instance.

Exemple :

  • Pour activer l'audit pour toutes les opérations sur toutes les bases de données d'une instance:
    gcloud alloydb instances update my-instance \
        --database-flags pgaudit.log=all[,flag2=value2...] \
        --region=us-central1 \
        --cluster=my-cluster \
        --project=my-project
    
  • Pour n'activer l'audit que pour les opérations de lecture et d'écriture sur toutes les bases de données d'une instance:
    gcloud alloydb instances update my-instance \
        --database-flags=^:^pgaudit.log=read,write[:flag2=value2...] \
        --region=us-central1 \
        --cluster=my-cluster \
        --project=my-project
    

Notez l'utilisation de la syntaxe de délimiteur alternatif, qui vous permet d'utiliser des caractères de virgule dans une valeur d'indicateur.

Pour en savoir plus sur la configuration des options de base de données, consultez la section Configurer des options de base de données.

Configurer la journalisation d'audit des sessions pour une base de données spécifique

Vous pouvez configurer l'audit pour une base de données spécifique en définissant l'indicateur pgaudit.log au niveau de la base de données.

Par exemple, pour activer l'audit de lecture/écriture pour une base de données, procédez comme suit:

finance=> ALTER DATABASE finance SET pgaudit.log = 'read,write';

Configurer la journalisation d'audit de session pour un seul utilisateur

Vous pouvez activer l'audit pour un utilisateur spécifique en définissant pgaudit.log au niveau d'un rôle.

Par exemple, pour définir l'audit pour toutes les opérations de base de données exécutées par l'utilisateur Alice:

finance=> ALTER ROLE alice SET pgaudit.log = 'all';

Configurer la journalisation d'audit des objets

L'audit d'une relation est plus précis que l'audit d'une base de données spécifique. Lorsque vous effectuez un audit pour une relation, le système attribue un rôle d'auditeur unique au paramètre pgaudit.role. Cette opération consigne tout objet ou relation attribué à ce rôle.

Exemple :

  • Pour configurer l'audit pour toutes les requêtes SELECT sur la relation "salaire" dans la base de données des employés:
    employee=> CREATE ROLE auditor WITH NOLOGIN;
    employee=> ALTER DATABASE employee SET pgaudit.role = 'auditor';
    employee=> GRANT SELECT ON salary TO auditor;
    

Vous pouvez également auditer un sous-ensemble de colonnes pour une relation donnée.

Exemple :

  • Pour configurer la journalisation d'audit qui n'a lieu que lorsque les colonnes income et tax_status sont accessibles à partir de la relation "salaire" :
    employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;