Adminer, un outil léger d’administration de base MySQL

Si vos besoins en administration de bases de données ne demandent pas une interface très poussée, pourquoi ne pas jeter un œil du côté d’Adminer ? Ce petit logiciel se présente comme une alternative au classique PhpMyAdmin : plus simple, plus sobre et plus facile à installer, il consiste en un seul et unique fichier PHP à déposer sur votre serveur dédié. Si l’apparence d’origine ne vous convient pas, vous avez même la possibilité d’utiliser une des feuilles de styles proposées sur le site pour le personnaliser à votre guise.
Son interface est mieux conçue à mon sens que celle de PhpMyAdmin, plus simple et plus ergonomique ; ses fonctionnalités s’approchent de son grand frère sur de nombreux points, le dépassent même parfois :
- Un assistant de construction de requête SELECT intéressant dans son fonctionnement et mieux conçu que celui de PhpMyAdmin ; il permet de gagner un temps précieux en vous permettant de rester très proche de la construction d’une requête SQL classique.
- Fonctionnalités basiques d’exportation : elle est disponible uniquement au format SQL et CSV, ce qui devrait suffire dans la majeure partie des cas, mais PhpMyAdmin reste plus complet sur ce point.
- Possibilité d’afficher le schéma de la base sélectionnée sous la forme de multiples divs colorés avec les noms des champs. J’ignore si cette fonctionnalité existe également sous PhpMyAdmin, mais je trouve que c’est un plus sympathique pour ce petit outil.
- Insertion de données dans une table depuis un fichier CSV de votre choix, ça peut toujours servir.
- Plus classiquement, il est au même niveau que PhpMyAdmin pour :
- Exécution d’une requête arbitraire directement depuis un champ de texte ou un fichier sur votre disque dur.
- Analyse, Optimisation, Purge de TABLE.
- Création facile de TABLES, d’INDEX et de TRIGGER.
On a donc affaire à un outil qui se fixe un projet clair, ambitieux et qui remplit parfaitement le rôle qu’il s’est fixé, une belle réussite à mon sens – il a remplacé chez moi PhpMyAdmin, car je ne me servais de toutes façons pas des fonctionnalités qui rendent ce dernier véritablement intéressant. Il nécessite par contre une bonne compréhension du langage SQL, ce qui le rend du coup un peu moins accessible que ne l’est PhpMyAdmin.
Commentaires 9 commentaires
J’ai longuement hésité avant de publier le commentaire précédent qui m’a vraiment troublé par son ton et ce qu’il sous-entend. Je suis fondamentalement contre la censure, aussi j’ai pris le parti de le publier malgré tout, accompagné de cette mise au point. Je ne partage absolument pas ton avis, frdr : soit tu es fort mal renseigné, soit carrément malveillant. Dans le doute, je préfère envisager la première éventualité ; toutefois, je ne comprends pas vraiment tes arguments techniques, et je ne vais pas donc chercher à les contredire.
Cependant, je crois qu’il faut tout de même rétablir la vérité : Adminer est un projet moitié open source, moitié commercial dont les sources sont disponibles sur le site officiel. Si ses concepteurs étaient aussi malveillants que tu le laisses entendre, je suppose qu’ils préféreraient que personne ne regarde leur code source. D’autre part, j’en profite pour ajouter que le projet a été primé par Sourceforge dans la catégorie « meilleur nouveau projet ».
Tout ça pour dire que je continue d’avoir une confiance totale en ce logiciel et que cela n’enlève rien aux qualités de PhpMyAdmin, qui sont effectivement nombreuses.
Je n’ai rien contre ce genre de débats s’ils servent à quelque chose et que cela reste bon enfant – mais écrire quelque chose comme tu viens de le faire, non, ce n’est tout simplement pas correct.
Bon, j’y suis peut-être allé un peu fort, mais la question reste entière.
Sous Firefox il ya deux extension pour vous éclairer :
- Httpfox
- FireBug
Httpfox permet de tracer tous les appels HTTP faits lors du chargement d’une page.
FireBug, tres connu des développeurs, permet le debuging sur le javascript d’une page HTML.
En lançant n’importe quelle page HTML d’Adminer, chacune d’entres elle fera un appel externe sur le site « https://jush.svn.sourceforge.net/svnroot/jush/trunk/ ».
Bon cene sont pas pour des pages PHP, mais pour des pages CSS et Javascript : jush.css et jush.js.
Ce sont quand même des pages externes, faitescertes, sur un serveur sécurisé..
Quand j’ai regardé le contenu de la page Javascript actuelle(jush.js), on trouve un code relativement complexe.
Cette page recense l’ensemble des variables de votre système ; franchement cela m’a bien énervé et poussé à écrire mon billet précédent.
Par acquis de conscience je suis allé voir d’un peu plus prés et je pense que cette « attention » est nécessaire au bon fonctionnement d’Adminer, pour lui permettre d’exécuter correctement les multiples requêtes SQL pour l’utilisation des quottes, interprétées différemment suivant la configuration que vous utilisez.
Bon bon bon, rien de grave alors ?
Oui, mais ça me gene quand même, pourquoi ce code Javascrit n’est t’il pas tout simplement intégré comme le reste dans cette unique page PHP ???
Pourquoi après s’être tellement « cassé le cul » à tout caser dans une unique page PHP (même le Favicon est indiqué en Hexa) avoir oublié ces « Jush » ???
Pour ceux que cela intéresse, Jush est documenté par son auteur : Jakub Vrana (la même personne du projet Adminer) :
http://jush.sourceforge.net/
http://jush.sourceforge.net/documentation.php ( pour les variables détectées par le script js).
PS : j’avais laissé mon e-mail avec mon dernier post, j’aurai apprécié d’avoir été consulté avant de me faire traiter d’idiot ou de malveillant… ![]()
Et mon post est signé FD, et nonfrdr….
@FD : Pour ce qui est de la manière que j’ai eu de réagir, mea culpa, j’ai parfois tendance à voir le mal partout ; ce qui m’a frappé dans ton précédent commentaire, c’est surtout l’absence de détails techniques précis par rapport à ce que tu reprochais au fonctionnement d’Adminer, et c’est ce qui explique ma réaction un peu épidermique.
C’est effectivement vrai que chaque page d’Adminer fait un lien vers cette fameuse librairie, JUSH : il s’agit en fait d’une librairie permettant de faire de la coloration syntaxique notamment à partir des requêtes SQL, pour les rendre plus présentables et lisibles pour l’utilisateur. Cependant, les requêtes ne transitent jamais sur un autre serveur : la librairie Javascript analyse et colorie les mots-clés à la volée, il n’y a donc pas de problème de sécurité à ce niveau-là.
On peut effectivement s’interroger sur les raisons qui ont poussé le concepteur d’Adminer de faire un lien sur son propre serveur pour charger la librairie. À mon avis, cela correspond surtout à une volonté de faciliter la vie aux utilisateurs d’Adminer, un peu comme Google propose de charger les principales librairies Javascript depuis ses propres serveurs pour éviter de consommer inutilement sa propre bande passante. Cela rend aussi le code plus facile à maintenir pour lui que s’il était directement incorporé dans le fichier PHP.
et eSKUeL ?
http://www.phptools4u.com/scripts/eskuel/
Merci, au moins ça discute ici, c’est cool. En quoi ça pourrait poser un problème de sécurité, d’avoir un ou plusieurs liens externes? comme ceux de la librairie dont vous parlez?
Ça peut éventuellement poser un problème de sécurité si l’auteur de la librairie décide délibérément d’inclure dans son code quelque chose qui va envoyer sur un serveur distant toutes les requêtes SQL qui sont tapées au clavier par exemple. Ou bien pire s’il se fait pirater son serveur et que le fichier est modifié à son insu. Je pense que c’est ça que voulait souligner FD en fait : le fait de ne pas avoir la main sur tous les fichiers utilisés dans son application peut être une sorte de talon d’Achille (dans le pire des cas, du moins).
Dans le cas d’Adminer, dont l’approche se veut minimaliste, je pense que le choix a été fait de ne pas inclure Jush parce que son auteur est la même personne et qu’elle a jugé plus judicieux de continuer à faire évoluer son code indépendamment d’Adminer, plutôt que de le graver dans le marbre de cette librairie.
Et bien j’ai directement posé la question à l’auteur du pourquoi.
L’appel en question permet de gérer la coloration syntaxique des commandes SQL.
Ce genre de code est loin d’être simple à écrire, car cela fait appel à de l’analyse syntaxique.
Admettons.
Moi, ce qui me gêne le plus, c’est que du coup le serveur distant peut en connaitre pas mal sur votre base de données : le nom des tables etc.. et pour peu que vous fassiez un Grant il connait aussi les droits d’accès sur la table.
Tout ce code est fait en Javascript, ce qui par principe ne permet pas d’intrusion d’une machine vers une autre.
Reste la question des Logs, car bien sur il y a une trace de tous ces appels, avec l’IP de votre serveur SQL, en prime.
Vous confiez facilement les clés de chez vous à des inconnus ??
Juste un petit mess. en passant a propos du fichier que télécharge adminer,
le truc le plus dérangeant c’est de ne pas être au courant de ce qui ce passe, peut être c’est indiqué dans la doc ce comportement « limite » j’ai pas été vérifier…
Cependant ce n’est pas la mort de faire pointer le lien vers un jush.js en local, et tant qu’a y être virer aussi le check de version qu’il fait, (juste avant ou après) dans le javascript intégré.
Ensuite c’est vraiment un super outil pour administrer ces bdd MySQL, PostgreSQL, SQLite, MS SQL et Oracle sans changer d’interface !
interface avec une ergonomie exemplaire (si on compare au déjà pas mauvais pma), en prime un adminer.css a coté du fichier .php et on a le design qu’on souhaite ^^
ps: j’ai pas d’action chez lui/eux, mais après de années de « galère » avec phpmyadmin, quel plaisir ce petit adminer à coté, à ça j’ajoute qu’il suffit de demander un fonctionnalité (utile/qui manque vraiment) pour qu’elle apparaisse dans la ou les version suivante (je pense au bouton « copy » pour copier une table en un click par exemple)



Attention à l’intallation d’Adminer !
J’étais comme vous, Adminer avait l’air bien sympa, à première vue, puis je me suis rendu compte que le fichier unique en PHP à mettre sur mon seurveur… appellait en faite toutes toutes ses fonctions PHP depuis le serveur d’adminer….
Pas trop cool, ses pages PHP hébergée « en dehors de chez moi » font tout de même des accés sur ma base MySQL, avec mes codes d’acces !
Point de vue sécurité soit c’est une énorme bétise de conception de leur part, soit ce sont des hackeurs, tout simplement…
PhpMyAdmin n’est pas si mal, dans ses dernières versions
Le problème c’est qu’on trouve trop souvent de vieilles version installées, alors que la communauté libre derrière PhpMyAdmin est loin de dormir sur ses lauriers…
PhpMyAdmin permet aussi d’afficher le schéma de la base (Database designer)
Il y a aussi une douzaine de thèmes proposés sur leur site, libre à vous d’en créer d’autres…
http://www.phpmyadmin.net