User-Verwaltung von MySQL bzw. MariaDB

Das hier geschriebene sollte wieder für MySQL und MariaDB gleichermaßen gelten. Als Testsystem, von dem auch der eine oder andere Screenshot stammt, diente wieder MariaDB.

Wie jedes ordentliche Datenbank-Management-System besitzen auch MariaDB bzw. MySQL eine eigene User-Verwaltung. So ist es z.B. möglich für eine Datenbank einen Benutzer anzulegen, der nur eine bestimmte Tabelle auslesen darf und sonst keinerlei Rechte hat, oder auch ein User der sich nur von einer bestimmten Client-IP aus anmelden darf ist möglich.

Nach der Installation ist bei den meisten MySQL/MariaDB – Servern nur ein Benutzer root ohne Passwort eingerichtet. Oft ist auch noch ein Synonymer Benutzer ohne Benutzername aber mit root – Rechten vorhanden. Da dies natürlich ein sehr hohes Sicherheitsrisiko darstellt, sollten diese Benutzer sofort nach der Installation geändert werden und zumindest ein Passwort bekommen.

Wichtig: Der User root von MySQL/MariaDB hat nichts mit dem User root des Betriebsystems zu tun. Die User-Verwaltung der Datenbank läuft völlig unabhängig vom Betriebssystem.

Will man wissen welche Benutzer bereits am Datenbank-Server angelegt sind, so lohnt sich ein Blick in die Tabelle user der Datenbank mysql. Für alle die jetzt auf Grund einiger Namesgleichheiten verwirrt sind, Step by Step:

[SQL]use mysql;

SELECT * FROM user;[/SQL]

Der Befehl sollte bei einem frisch installierten DBMS ungefähr so aussehen:

Ausgabe von SELECT * FROM user;

Ausgabe von SELECT * FROM user;

Wie man gut erkennen kann, werden hier sehr viele Spalten ausgegeben, so dass diese auf einer Bildschirm – Breite gar nicht Platz haben.

Weiters kann man schon ablesen welche Rechte alles gesetzt werden können. So steht z.B.. in der Spaltenüberschrift neben Password Select_priv. Select_priv wiederum steht für das Recht Abfragen durchzuführen (Select – Abfrage, priv – Privileg – Recht). Also man braucht gar nicht viel Phantasie um hier schon einiges entdecken zu können.

Wie kann ich nun aber Benutzerrechte vergeben oder ändern?

Das Zauberwort dafür ist der Befehl GRANT.

Will ich z.B. einen User test für meine Datenbank testdb anlegen, so lautet der Befehl:

[SQL]GRANT ALL ON testdb.* TO ‚testuser’@’localhost‘ IDENTiFIED BY ‚testpasswd‘;[/SQL]

Übersetzt heißt der Befehl soviel wie: Gib alle Rechte der Datenbank testdb, mit all ihren Tabellen, dem User testuser, der sich nur lokal mit dem Passwort testpasswd anmelden darf.

Wenn man nun den Datenbank-Client beendet kann man sich mit dem Befehl:

mysql -u testuser -p wieder anmelden und wird feststellen, dass man nur mehr auf die Datenbank testdb Zugriff hat.

Soweit die wichtigsten Grundlagen zur User-Verwaltung in MySQL bzw. MariaDB. – Viel Spass beim experimentieren!

Merken

About

You may also like...

Your email will not be published. Name and Email fields are required