297 3 0

Wie erstelle ich einen MySQL Benutzer und weise ihm Rechte zu?

vom gridscale Team Database MySQL
MySQL - Create User

MySQL – Create User

MySQL und MariaDB sind die wohl populärsten OpenSource Datenbank Management Systeme. Mit diesen Datenbanken kannst du dynamisch große Mengen an Daten speichern und verwalten. Ein sehr fein abgestuftes Rechtesytem hilft dir dabei, die Zugriffsberechtigungen von unterschiedlichen Benutzern zu steuern.

In diesem kurzen Artikel geht es darum, einen neuen Benutzer zu erstellen und ihm Rechte auf eine Datenbank zu geben. Auch wenn in diesem Artikel nur MySQL erwähnt wird, so lassen sich alle Kommandos 1:1 auf MariaDB übertragen.

Erstellen eines Benutzers in MySQL

Zunächst starte die MySQL Konsole. Dazu öffne ein Terminal (bspw. PuTTY oder XTerm) und verbinde dich auf den Server mit deiner MySQL Installation. Wir benutzen den Benutzer ‚root‘ auf deiner MySQL Installation. Hast du den Benutzer mit einem Kennwort versehen, so nutze folgendes Kommando:

$ mysql -u root -p

Du wirst dann nach einem Kennwort gefragt. Nach der Eingabe solltest du den MySQL Prompt sehen. Hast du kein Kennwort gesetzt, so verzichte auf den Parameter ‚-p‘ und du wirst nicht nach einem Kennwort gefragt.

root@mysql:~# mysql -u root -p
Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 98
Server version: 5.5.47-0+deb8u1 (Debian)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Das Erstellen eines neuen Benutzers ist vergleichsweise einfach. Ersetze in dem nachfolgendem Befehl einfach die Werte „benutzer“ und „passwort“:

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

Damit hast du einen Benutzer erstellt, der allerdings noch keine Berechtigungen auf irgendeine Datenbank oder Tabelle hat. Zu Testzwecken erstelle nun eine neue Datenbank, auf die der Benuter später zugreifen darf.

CREATE DATABASE 'meineDB';

Und nun gewähre deinem neuen Benutzer alle Rechte auf diese Datenbank. Ersetze wieder den Wert „benutzer“ durch deinen eigenen Benutzernamen:

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

Kurz zur Erklärung des o.s. Kommandos:

– GRANT ALL PRIVILEGES : Es werden alle verfügbaren Privilegien (Rechte) zugewiesen. Es gibt auch eingeschränkte Privilegien, dazu später mehr.
– ON ‚meineDB‘ . * : Hiermit wird genauer spezifiziert, auf welche Bereiche die Rechte zugewiesen werden sollen. Möglichist auch ‚* . *‘, um einem Benutzer zum Beispiel alle Rechte einzuräumen oder die Einschränkung auf einzelne Tabellen einer Datenbank, wie z.B. “meineDB‘ . ‚meineTabelle“.
– TO ‚benutzer’@’localhost‘ : Hierbei handelt es sich um den Benutzer, der diese Rechte erhalten soll.

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, solltest du nach jeder Änderung einmal das Kommando:

FLUSH PRIVILEGES;

ausführen. Vergisst du das Kommando, kann es sein das du dich mit den neuen (oder geänderten) Zugangsdaten noch nicht an dem Datenbankserver anmelden kannst.

Weitere Privilegien in MySQL

Neben dem oben genutzten ‚ALL PRIVILEGES‘ kannst du einem Benutzer auch andere Sets an Privilegien in deinem 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

Der genaue Syntax ist in der Dokumentation von MySQL sehr gut beschrieben. Du findest sie hier.

Löschen eines Benutzers in MySQL

Einen Benutzer kannst du genauso einfach löschen, wie anlegen. Nutze dazu folgenden Befehl:

DROP USER 'benutzer'@'localhost';

Versichere dich, dass du die Privilegien neu geladen hast, nach jeder Änderung an den Rechtetabellen.

Weitere Artikel zu MySQL und MariaDB

Schade, dass dir der Artikel nicht gefallen hat.
Was sollten wir deiner Meinung nach besser machen?

Vielen Dank für dein Feedback!
Wir melden uns bei dir, sobald der Artikel zu deinem Wunschthema fertig ist.

Übrigens: kennst du schon unser Tutorial zum Thema MySQL Datenbank erstellen und löschen?

Hinterlasse einen Kommentar

0 Kommentare

×

Entwickler?

Dann einfach hier für unsere Tutorial-Updates anmelden.
Keine Sorge: Wir spammen dich nicht zu :)