2010-02-15 5 views
0

Je suis en train d'écrire une application pour surveiller les requêtes SQL produites par une application web. Je suis intéressé par la surveillance passive des requêtes SQL envoyées par une application donnée. C'est-à-dire que je ne veux pas de proxy - à la place, je veux exécuter l'application pour s'asseoir séparément de l'application/base de données web, et simplement lire les requêtes SQL en cours d'exécution par l'application. Est-il possible de le faire avec Java/C++?Suivi passif de requêtes SQL sous Linux/Unix

+0

Avez-vous accès au code source qui effectue ces appels SQL? Je commence à penser à Code Injection – jpabluz

Répondre

0

Vous pouvez utiliser le journal de la base de données mysql elle-même. Vous pouvez demander à un programme de lire ce fichier journal et de l'afficher. Vous dites C++ ou Java, mais quelque chose avec une bonne gestion de chaîne serait probly être plus facile. Perl peut-être?

http://dev.mysql.com/doc/refman/5.0/en/query-log.html

1

Quelle base de données utilisez-vous? SQL Server Profiler vous permet de surveiller l'activité de la base de données en temps réel, de filtrer les instructions SQL en fonction de l'utilisateur, etc.

De même, pourquoi évitez-vous d'utiliser une implémentation proxy? Vous pouvez utiliser un pool de connexions tel que C3P0 et activer la journalisation appropriée afin de capturer tous les SQL exécutés. Je peux imaginer que l'impact sur les performances serait négligeable.

+0

Eh bien j'espérais que mon outil serait indépendant de l'application. Un utilisateur peut l'exécuter et commencer à surveiller au lieu d'avoir à changer des parties de son code. Mais je suppose qu'un proxy serait le plus facile à mettre en œuvre - des recommandations sur la façon de mettre en œuvre un proxy? – Louis