Tracer les connexions à MySQL

Tracer vos connexions aux bases de données MySQLMySQL n'inclut pas de système de traçabilité simple à mettre en œuvre, comme peuvent le proposer SQL Server de Microsoft ou Oracle Database.

Créer une table CSV

MySQL comprend de nombreux trésors insoupçonnés. Il permet de créer des tables - des fichiers - ... au format CSV. Créez tout d'abord une base de données dédiée pour tracer les connexions de vos utilisateurs :
CREATE DATABASE logs;
Puis, créez la table qui consignera les connexions des utilisateurs :
CREATE TABLE logs.connexion ( log_user varchar(100) NOT NULL, log_date datetime NOT NULL) ENGINE = CSV;
Vous pouvez interroger les fichier CSV à l'aide d'une instruction SELECT : SELECT * FROM logs.connexion. Vous pouvez aussi accéder au contenu de ce fichier à l'aide de la commande tail -f /var/lib/mysql/log/connexion.CSV !

Donner les droits à tous les utilisateurs de la base

Au cas où vous oublieriez de donner les droits, vous ne pourrez plus accéder aux données des bases de données MySQL à partir de vos applications !
GRANT INSERT ON logs.connexion TO '%'@'localhost';
GRANT INSERT ON logs.connexion TO '%'@'%';

Tracer les utilisateurs sous MySQL

Après avoir donné les droits aux utilisateurs de l'instance MySQL, vous pouvez dynamiquement jounraliser les connexions de vos utilisateurs à partir de l'interpéteur de commandes de MySQL ou tout autre système équivalent (MySQL WordkBench, Toad for MySQL)
SET GLOBAL init_connect = 'INSERT INTO logs.connexion VALUES(USER(),NOW());';
Vous pouvez aussi ajouter à la section [mysqld] du fichier /etc/my.cnf, sous CentOS :
init_connect = 'INSERT INTO logs.connexion VALUES(USER(),NOW());';
Dans ce cas, vous devrez redémarrer le service mysql : /etc/init.d/mysqld restart ou service mysqld restart, sous CentOS.

Dsfc Dsfc

Tracer les connexions à MySQL
0 votes, 0.00 avg. rating (0% score)
Tags : , , , , , ,
Commentaires

Pas encore de commentaire.

Laisser un commentaire

(requis)

(requis)


*