Toolbox: Schlanke Datenbankverwaltung mit Adminer
Für Arbeiten an der Datenbank, die bei der Pflege des LAMP-Systems unter einem Blog, Content Management System oder kleineren Shop anfallen, bietet Adminer ein aufgeräumtes Web-Frontend.
- David Wolski
Um den eigenen Webauftritt zu administrieren, sind keine SQL-Kenntnisse nötig. Web-Frontends zur Datenbankverwaltung bieten eine übersichtliche, menügesteuerte Oberfläche, mit der sich Datenbanken ohne tiefere SQL-Kenntnisse über den Browser verwalten lassen. Das bekannteste Tool für diesen Zweck ist sicherlich phpMyAdmin, das aber für viele Zwecke schlicht zu umfangreich ist. Eine schlanke und weitgehend intuitiv zu bedienende Alternative ist Adminer. Der tschechische Entwickler Jakub Vrána rief das Projekt 2007 als leichtgewichtige Alternative zu phpMyAdmin ins Leben.
Datenbankverwaltung mit Adminer (6 Bilder)
Update
Fix installiert
Adminer funktioniert mit PHP ab Version 4.3.3 und unterstützt neben MySQL auch PostgreSQL, SQLite, MS SQL und Oracle. Anders als phpMyAdmin benötigt Adminer keine Konfiguration und läuft ohne große Vorbereitungen: Adminer besteht aus einer einzigen PHP-Datei, die Sie lediglich in ein über das Web erreichbares Verzeichnis auf den Webserver kopieren müssen. Die gesamte Oberfläche ist auch in Deutsch verfügbar. Das Skript umfasst in der Version 3.4.0 deutlich unter 400 Kbyte und bringt mehrere Sprachen für die Menüoberfläche mit. Daneben steht eine kleinere Datei mit gut 200 KByte zum Download bereit, die ausschließlich die deutsche Sprachunterstützung enthält.
Ab in die Datenbank
Beim Aufruf des PHP-Skripts im Browser verlangt Adminer zunächst die Anmeldeinformationen für die Datenbank: Datenbank-Login, Passwort und optional die Namen von Datenbank-Host ("Server") und "Datenbank". Letztere sind nötig, wenn die Datenbank – wie häufig bei Shared-Hosting-Providern – auf einem anderen Server liegt. Für die Anmeldung an einem lokalen Datenbankserver kann man die Felder leer lassen.
Nach der Anmeldung präsentiert Adminer eine Übersicht aller Datenbanken, auf die der angemeldete Benutzer Zugriff hat. Wenn es nur eine gibt, listet Adminer direkt die vorhandenen Tabellen auf. Die Buttons unter der Liste bieten Funktionen, mit denen sich markierte Tabellen analysieren, prüfen, entleeren oder in eine andere Datenbank verschieben und kopieren lassen. Auch um fortgeschrittene Funktionen ist Adminer nicht verlegen: Ganz unten bieten Links das Anlegen von Prozeduren, Funktionen und Event-Triggern an.
Über die Navigationslinks über der Tabelle lässt sich das Schema der aktuell geöffneten Datenbank bearbeiten und der Zeichensatz ändern. Wer Root-Rechte in der Datenbank hat, kann zudem mit dem Link "Rechte" Benutzer anlegen und deren Zugriffsrechte ändern. Diese Einstellungen beziehen sich stets auf die aktuell geöffnete Datenbank. Um stattdessen eine Übersicht aller Benutzer zu erhalten, dient der Punkt "Rechte" über der Auswahlliste aller Datenbanken.
Einzelne Tabellen öffnet man einfach per Klick auf den mit einem Link unterlegten Tabellennamen, woraufhin dann deren Struktur sichtbar wird. Um einzelne Datensätze anzuzeigen oder zu bearbeiten, dient der Link "Daten auswählen". Zwei äußerst wichtige Menüpunkte enthält die linke Navigationsspalte: "SQL-Query" ruft eine Konsole für die direkte Eingabe von SQL-Befehlen auf. Mit "Export" lassen sich ausgewählte Tabellen oder ganze Datenbanken exportieren. Als Formate stehen hier SQL und CSV zur Wahl. Mit einem Packprogramm wie gzip oder bzip2 lässt sich der Download außerdem komprimieren.
Alles in einer Datei
Adminer packt alles in eine Datei, sogar die wenigen Icons, die mit base64_decode() direkt im PHP-Code untergebracht sind. Die Reduktion auf eine einzige PHP-Datei bedeutet, dass sich Adminer schnell und einfach installieren lässt und auf Dateiebene auf dem Server einfach zu handhaben ist.
Allerdings ist der PHP-Code von Adminer nicht nur aufgeräumt, sondern regelrecht komprimiert, um ein paar Kbyte Größe einzusparen. Leerzeichen und Zeilenumbrüche wurden weitgehend entfernt, der Code ist daher nicht besonders gut lesbar. Da es dem Entwickler aber nur um Größe, nicht aber um Quelltextverschleierung geht, steht auch eine übersichtliche Version des PHP-Codes zur Verfügung. Wer gern einen Blick hinter die Kulissen wirft, findet den unkomprimierten Quellcode auf der Projektwebseite zum Download.
Sicher auf dem Server
Da es sich bei Adminer um eine einzige Datei handelt, lässt sich der PHP-Code leicht pflegen und es gibt weniger potentielle Fehlerquellen. Für die Verwendung auf dem Server lässt sich die Skriptdatei von Adminer auch umbenennen. Die kompakte Datenbankverwaltung in Form einer einzigen PHP-Datei birgt aber auch das Risiko, dass Adminer leicht ungesichert und für alle Welt zugänglich auf dem Produktionsserver vergessen wird. Damit das nicht passiert, empfiehlt es sich, für Adminer ein eigenes Verzeichnis im Document-Root des Webservers anzulegen. Der Name sollte leicht zu merken sein, aber keinen allzu offensichtlichen Verzeichnisnamen haben, da so etwas auf Webservern von Directory-Scannern wie Dirbuster schnell gefunden wird. In diesem Verzeichnis bekommt die PHP-Datei von Adminer einfach den Namen „index.php“, damit sie der Webserver automatisch ausführt. Da Adminer selbst außer der Datenbankanmeldung keine Sicherheitsvorkehrungen trifft, muss nun ein Passwort-Schutz her – bei Apache beispielsweise mit einer entsprechenden .htaccess-Datei im gleichen Verzeichnis.
Fazit: Ideal für gelegentliche Datenbankausflüge
Adminer verfolgt einen minimalistischen Ansatz und reicht nicht für alle Zwecke. Die Oberfläche ist in ihrer Übersichtlichkeit aber sympathisch und bleibt weitgehend intuitiv. Wer nicht täglich mit SQL-Datenbanken zu tun hat, wird vom angebotenen Funktionsumfang nicht erdrückt. Für fortgeschrittene Datenbanker gibt es immer noch die integrierte SQL-Konsole, um direkt Befehle an die Datenbank zu senden und um deren Output weiter zu verarbeiten. Adminer hat ein duales Lizenzmodell und steht unter der GPLv2 sowie unter der Apache License. Letzteres ist praktisch, um Adminer in eigene Open-Source-Projekte zu integrieren, die nicht unter der GPL stehen sollen. (lmd) (lmd)