- 1
[Opened] Audit des requêtes SQL
Posted by maelbl on 02/24/2017 17:00
Bonjour,
Déjà merci pour l'aide que certains d'entre vous m'ont fourni il y a quelques jours !
J'aimerais réaliser un audit des requêtes CRUD effectuées dans ma base de données. Les utilisateurs s'authentifient à mon application via LDAP et les requêtes sont exécutées sur une database SQL Server 2014, la connexion étant authentifiée par un user/password créé spécialement pour l'occasion.
Le but ici serait donc d'auditer (donc stockage des informations qui m'intéressent dans une table de la base de données) les valeurs suivantes :
- UserLDAP
- Type (CRUD)
- Table affectée (primaire)
- La requête
- L'heure de l'exécution
J'avais pensé à réaliser des Trigger, cependant la database ne peut pas savoir quel user LDAP à lancé l'action. De même, envoyé le user dans chaque requête me semble être assez pénible, surtout que j'utilise des DAO (merci pour l'implémentation SQL Server Laurent !)
Un des buts de cet audit est d'avoir un historique des modifications ainsi que de permettre de réaliser des statistiques (quel user à fait quelles actions, combien de modifications par x temps, etc..)
Savez-vous si cela est possible ? Y-a-t'il un plugin qui gère cela ? Je prends volontiers toutes idées.
Merci d'avance et tout bon week-end !
[Opened] Audit des requêtes SQL
Posted by foxmask on 02/24/2017 18:03
Bonsoir, Perso je me ferai tout cela avec un module History par exemple, qui exploiterait jEvent
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] Audit des requêtes SQL
Posted by maelbl on 02/27/2017 07:55
Bonjour, merci pour la réponse. Je vois, ca me parait être une bonne base déjà. Mais ce que je n'arrive pas à voir, c'est comment récupérer la requête exécutée ? Alors je pourrais faire qqchose en modifiant les fichiers de Jelix mais le but reste quand même d'être le moins lié possible à ceux-ci (dans un souci de maintenance, de mise à jour).
[Opened] Audit des requêtes SQL
Posted by laurentj on 02/27/2017 12:31
Salut,
Tu as plusieurs moyens, à utiliser séparement ou en même temps, à toi de voir, et qui repose sur les évènements. Donc tu dois implémenter des listeners.
1) jAuth emet des événements à chaque action : login, logout, quand un user est ajouté, supprimé, modifié etc...
je pense que cela couvre à peu prés tout les cas que tu veux avoir. L'avantage est que c'est indépendant du plugin jauth utilisé.
2) si tu veux descendre à plus bas niveau, il faut savoir qu'un dao peut emettre des evenements à chaque fois qu'une requête est faite. Par contre y en a pas quand un select est fait...
[Opened] Audit des requêtes SQL
Posted by maelbl on 02/27/2017 16:26
Hello,
Extra, je pense que c'est droit ce qu'il me faut, merci ! Les select je dois pouvoir m'en passer, ou bien je m'arrange autrement (lorsque j'accède à la page qui exécute la requête par exemple).
Merci pour ces informations qui m'avaient échappées !
- 1