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 inclutSELECT, 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
ettax_status
sont accessibles à partir de la relation "salaire" :employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;