MySQL Benutzer anlegen

Aus Dirk's Wiki
Zur Navigation springen Zur Suche springen

Benutzer anlegen

Verbindung mit der MySQL Datenbank herstellen:

$ mysql -u root -p

Benutzer anlegen, Datenbank anlegen und dem Benutzer die Rechte zu Datenbank gewähren.

CREATE USER 'benutzer'@'localhost' IDENTIFIED BY 'passwort';

CREATE DATABASE 'testDB';

GRANT ALL PRIVILEGES ON testDB . * TO 'benutzer'@'localhost';

FLUSH PRIVILEGES;

Kurz zur Erklärung der Kommandos:

GRANT ALL PRIVILEGES
Es werden alle verfügbaren Privilegien (Rechte) zugewiesen. Es gibt auch eingeschränkte Privilegien, siehe dazu unten.
ON testDB . *
Hiermit wird genauer spezifiziert, auf welche Bereiche die Rechte zugewiesen werden sollen. Möglich ist auch * . * um einem Benutzer zum Beispiel alle Rechte einzuräumen oder die Einschränkung auf einzelne Tabellen einer Datenbank, wie z.B. testDB . testTabelle.
TO 'benutzer'@'localhost'
Hierbei handelt es sich um den Benutzer, der diese Rechte erhalten soll.
FLUSH PRIVILEGES;
MySQL hält die Rechte normalerweise im Speicher vor, damit nicht jedes Mal, wenn sich ein Benutzer an der Datenbank anmeldet (was im Zweifel sehr oft sein kann), langsame I/O Operationen durchgeführt werden müssen. Um diese Kopie der Privilegien im Arbeitsspeicher zu updaten, sollte nach jeder Änderung einmal diese Kommando ausgeführt werden. Wird das Kommando vergessen, kann es sein das man sich mit den neuen (oder geänderten) Zugangsdaten noch nicht an dem Datenbankserver anmelden kann.

Weitere Privilegien in MySQL

Neben dem oben genutzten 'ALL PRIVILEGES' kann man einem Benutzer auch andere Sets an Privilegien auf dem MySQL Server zuweisen. Da sind beispielsweise folgende:

  • ALL PRIVILEGES : Ein Wildcard für alle Rechte auf das gewählte Datenbankobjekt, mit einem *.* auf alle Datenkbanken.
  • CREATE : Erlaubt einem Benutzer, neue Datenbanken zu erstellen
  • DROP : Erlaubt einem Benutzer, Datenbanken zu löschen
  • DELETE : Erlaubt einem Benutzer, einzelne Zeilen in einer Tabelle zu löschen
  • INSERT : Erlaubt einem Benutzer, neue Zeilen in eine Tabelle zu schreiben
  • SELECT : Leseberechtigungen auf eine Datenbank oder Tabelle
  • UPDATE : Erlaubnis, eine Zeile zu aktualisieren
  • GRANT OPTION : Erlaubt einem Benutzer, die Rechte anderer Benutzer zu setzen oder zu widerrufen

Die genaue Syntax kann auch in der MySQL Dokumentation nachgelesen werden. MySQL 5.5 Doku

Löschen eines Benutzers

Einen Benutzer kann genauso einfach wieder gelöscht werden:

DROP USER 'benutzer'@'localhost';