24.4 Benutzerverwaltung mit MySQL
Wenn Sie MySQL zum ersten Mal starten, ist als Benutzer immer root (oder auch root@localhost) ohne ein Kennwort eingetragen. Sollten Sie selbst einen Webserver betreiben, müssen Sie diese Benutzerdaten unbedingt ändern, da ansonsten jeder Zugriff auf Ihre Datenbanken hat.
Wir verwenden auch bei der Rechtevergabe wieder phpMyAdmin als Oberfläche. Sie können sie aber auch in ähnlicher Form mit den grafischen Oberflächen anderer Tools für MySQL vornehmen.
Auch lokal Zugangsdaten vom Provider eintragen |
Wenn Sie Ihre Websites bei einem Provider hosten, werden in den meisten Fällen die Namen der Datenbanken und die Benutzernamen automatisch vergeben, und Sie haben keinen direkten Einfluss darauf. Es ist ziemlich umständlich, lokal mit anderen Zugangsdaten und Datenbanknamen als später im Internet zu arbeiten. Außerdem ist es eine zusätzliche Fehlerquelle, wenn diese Daten beim lokalen Arbeiten immer wieder geändert werden müssen. Sinnvoll ist daher, die vom Provider erhaltenen Daten auch in Ihren lokalen Datenbanken zu verwenden. Legen Sie einen neuen Benutzer in MySQL und die Datenbanken mit den vom Provider vergebenen Daten an, und Sie müssen beim Veröffentlichen der Website und bei nachträglichen Änderungen nichts mehr aktualisieren. |
Rechtevergabe über phpMyAdmin | Um die Benutzerverwaltung in phpMyAdmin aufzurufen, klicken Sie im Startfenster auf Rechte. Sie kommen nun in die Benutzerübersicht von MySQL und sehen, welche Zugriffsrechte jeder einzelne Benutzer hat.
Abbildung 24.13 Die Rechteverwaltung von phpMyAdmin für MySQL
Benutzer löschen | Für das Löschen von Benutzern gibt es in phpMyAdmin einige komplexe Optionen. Um diese zu verstehen, müssen Sie wissen, dass alle Benutzer in einer Tabelle stehen, die beim Hochfahren von MySQL geladen wird. In diesem Menü haben Sie für durch das Aktivieren des Kontrollkästchens ausgewähle Benutzer die folgenden Möglichkeiten:
- Der Benutzer wird gelöscht, behält aber bis zu einem erneuten Laden der Benutzertabelle alle Rechte und kann weiterhin auf dem System arbeiten. Der Benutzer wird demzufolge nicht sofort gelöscht.
- Dem Benutzer werden alle Rechte entzogen, er behält allerdings die Zugriffsrechte im schreibgeschützten Modus, bis die Tabelle neu geladen wird.
- Der Benutzer wird vollständig aus der Tabelle entfernt und die Tabelle direkt im Anschluss neu geladen. Dies ist der sicherste Weg.
- Datenbanken, die denselben Namen wie der Benutzer tragen, werden ebenfalls sofort gelöscht. Wenden Sie diese Option nur mit äußerster Vorsicht an. Es ist besser, alle relevanten Datenbanken anschließend von Hand zu löschen.
Benutzer anlegen | Beim Anlegen eines neuen Benutzers müssen Sie für ihn, nachdem Sie Benutzername, Host und Kennwort vergeben haben, Globale Rechte festlegen. In der folgenden Tabelle haben wir die Bedeutung der einzelnen Optionen aufgelistet.
Daten | |
SELECT |
erlaubt dem Benutzer, Daten auszulesen |
INSERT |
erlaubt dem Benutzer, Daten einzufügen |
UPDATE |
erlaubt dem Benutzer, Daten zu verändern oder zu überschreiben |
DELETE |
erlaubt dem Benutzer, Daten zu löschen |
FILE |
erlaubt dem Benutzer, Daten zu importieren oder zu exportieren |
Struktur | |
CREATE |
erlaubt dem Benutzer das Erstellen kompletter Datenbanken oder Tabellen |
ALTER |
erlaubt dem Benutzer, die Struktur von Tabellen zu verändern |
Struktur | |
INDEX |
erlaubt dem Benutzer, Indizes von Tabellen anzulegen oder zu löschen |
DROP |
erlaubt dem Benutzer, Datenbanken oder Tabellen komplett zu löschen |
Administration | |
GRANT |
erlaubt das Hinzufügen oder Verändern von Benutzern in die Benutzertabelle während des Betriebes |
PROCESS |
ermöglicht das Beenden systemfremder Prozesse |
RELOAD |
erlaubt dem Benutzer, die Servereinstellungen neu zu laden und während des Betriebes den Zwischenspeicher von MySQL zu leeren |
SHUTDOWN |
erlaubt das vollständige Herunterfahren des MySQL-Servers |
REFERENCES |
ist in dieser MySQL-Version noch nicht verfügbar |
Tabelle 24.2 Globale Rechtevergabe für MySQL-Benutzer
Abbildung 24.14 Neuen Benutzer mit phpMyAdmin anlegen
Datenbankspezifische Rechte | Wenn Sie einen neuen Datenbankbenutzer angelegt haben, können Sie auf Rechte klicken und für jeden der Benutzer weitere Dateirechte festlegen. Es erscheint der Screen aus Abbildung 24.15. Hier können Sie beispielsweise für jede einzelne der vorhandenen Datenbanken detaillierte Zugriffs- und Administrationsrechte vergeben.
Abbildung 24.15 Weitere Rechtevergabe mit phpMyAdmin
Die Rechtevergabe können Sie bis auf die Tabellenebene und sogar Datenfeldebene ausführen. Sie könnten zum Beispiel einem Benutzer Rechte für alle Tabellen erteilen und die Felder mit den Primärschlüsseln oder Felder mit Kennwörtern komplett sperren.
Abfragesprache | Sie haben jetzt viel über MySQL gehört. Was uns jetzt noch fehlt, sind einige Grundlagen zu SQL, der Programmiersprache, die Sie benötigen, um Daten aus der Datenbank abzufragen. Diese kommen im folgenden Abschnitt an die Reihe.