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)


*