Connexion avec pgaudit
L'extension d'audit « PostgreSQL » (pgaudit) permet d'activer la journalisation des sessions pour vos déploiements d' IBM Cloud® Databases for PostgreSQL. Pour afficher les journaux d'audit, assurez-vous d'avoir activé la journalisation pour Cloud Databases et d'avoir suivi les étapes pour créer une S2S autorisation permettant d'accorder l'accès à l'envoi des journaux vers IBM® Cloud Logs.
Consignation de session
La connexion de session est désactivée par défaut. Vous pouvez activer les paramètres de journalisation de session qui enregistrent toutes les activités relatives à des ensembles de types d'événements d'audit. La consignation de session est
activée pour l'ensemble du cluster de base de données et est activée (on) ou désactivée (off) pour un type d'événement spécifique.
Types d'événements
La consignation de session est configurée par type d'événement. Les types d'événement pris en charge sur toutes les versions sont les suivants :
- FONCTION
- RÔLE
- DDL
- LIRE
- ECRIRE
- MISC
- MISC_SET
- NONE (pour désactiver l'enregistrement)
Pour plus d'informations, voir pgaudit.
Activation de la journalisation des sessions d' pgaudit
Pour activer la journalisation des sessions d' pgaudit, connectez-vous en tant qu'utilisateur « admin » et appelez la fonction « set_pgaudit_session_logging » en spécifiant les paramètres d'événement appropriés. La
consignation de session est activée directement dans la base de données et aucun accès d'API ou d'interface de ligne de commande n'est fourni.
Par exemple, pour activer les fonctions DDL et ROLE, appelez :
SELECT public.set_pgaudit_session_logging(current_database(),'{ddl, role}');
Vous pouvez spécifier une base de données avec dbname au lieu de la fonction current_database().
Activation de la journalisation des utilisateurs d' pgaudit
Pour activer la journalisation des utilisateurs d' pgaudit, connectez-vous en tant qu'utilisateur « admin » et appelez la fonction set_pgaudit_user_logging en spécifiant les paramètres d'événement appropriés. L'enregistrement
des utilisateurs est activé pour un utilisateur spécifique au lieu de tous les utilisateurs de la base de données.
Par exemple, pour activer les fonctions READ et WRITE, utilisez la commande suivante :
SELECT public.set_pgaudit_user_logging(<CREATED USER>,'{read, write}');
Activation de la journalisation de la base de données d' pgaudit
Pour activer la journalisation spécifique à la base de données « pgaudit », connectez-vous en tant qu'utilisateur « admin » et appelez la fonction « set_pgaudit_database_logging » en spécifiant les paramètres d'événement
appropriés. La journalisation des bases de données est activée pour une base de données spécifique, dans le cas où plusieurs bases de données sont disponibles dans une instance.
Par exemple, pour activer DDL et ROLE dans la base de données actuelle, utilisez la commande suivante :
SELECT public.set_pgaudit_database_logging(current_database(),'{ddl, role}');
ou
SELECT public.set_pgaudit_database_logging('sampledatabase','{read, write, ddl}');
Tous les appels suivants remplacent la configuration existante ; ils ne viennent pas s'ajouter. Par exemple, un appel ultérieur à SELECT public.set_pgaudit_session_logging('{misc}'); enregistre uniquement misc ,
mais désactive ddl et role``.
Désactivation pgaudit
Pour désactiver la journalisation d'audit, appelez la même fonction en spécifiant « none ». Exemple :
SELECT public.set_pgaudit_session_logging(current_database(),'{none}');
La modification des niveaux d'audit se produit immédiatement lorsque la fonction est appelée sans interrompre l'activité de la base de données.
Journaux d'audit
Les événements d'audit apparaissent dans IBM® Cloud Logs Routing au format suivant :
LOG: AUDIT: SESSION,1,1,DDL,CREATE TABLE,,,create table f2 (id int);,<not logged>
Pour plus d'informations, voir pgaudit format.
Si vous souhaitez afficher le niveau de consignation en cours, vous pouvez exécuter la commande suivante :
show pgaudit.log;