LUG Waldkraiburg

zur Navigation springen


eMail Impressum Datenschutz

MySQL Benutzerverwaltung

von Siegfried Jahnel erstellt 10.2004

Nach der Installation ist der mysql- Server zwar lauffähig, weist aber Sicherheitslöcher auf. Außerdem ist es auch für Testzwecke ganz praktisch, wenn man zumindest einen normalen user einrichtet. Diese Howto soll dabei helfen.

Notation

  • $ ist der Linux- oder Dosprompt
  • Benutzereingaben sind fett dargestellt
  • alle Befehle müssen mit einem return abgeschlossen werden
  • Befehle im mysql-Monitor müssen mit einem Semikolon ";" und einem return abgeschlossen werden

Allgemeines

Nach der Installation eines mysql- Servers sind (normalerweise) standardmäßig 2 user angelegt:
  • der User root ohne Passwort
  • ein User ohne Benutzernamen und Passwort

Man kann dies testen, indem man versucht den mysql- Monitor mit folgenden Kommandos aufzurufen:
$ mysql -u root

Wenn als Ergebnis
mysql>Welcome to the mysql- Monitor...
erscheint, existiert ein user mit dem Namen root ohne Passwort!!!! Dies ist natürlich ein extremes Sicherheitsloch und muß unbedingt geschlossen werden. Als nächstes wollen wir noch testen, ob man sich ohne Benutzernamen und Passwort einloggen kann:
$ mysql
Führt auch dieses Kommando zum Erfolg, dann gibt es also einen user mit einem leeren Benutzernamer und leerem Passwort. Diesen "leeren" User werden wir später löschen.

Aufbau der Benutzer- und Rechteverwaltung in mysql

Die Benutzer und deren Rechte werden hauptsächlich in den Tabellen user und db in der Datenbank mysql verwaltet. Damit Änderungen in dieser Datenbank gültig werden, muß jede Änderung mit Befehl: flush privileges in das System "gespült" werden.

root- Passwort ändern

Der user root soll das Passwort "caligula" erhalten. Wir loggen uns als root in der mysql-Monitor ein und ändern das Passwort von root.

$ mysql -u root
mysql>Welcome to the mysql monitor ....
mysql>update mysql.user set password=password('caligula') where user='root';
mysql>Ouery OK, 0 row affected 
mysql>flush privileges;
mysql>Ouery OK, 0 row affected
Beim nächsten einloggen als root müssen wird ein Passwort mit angeben. Damit der mysql-Monitor weiß, daß ein Passwort eingegeben werden muß, erfolgt der Aufruf mit dem Parameter p.

$ mysql -u root -p
password:********
mysql>Welcome to the mysql monitor ....
Das erste Sicherheitloch ist jetzt geschlossen. Der User root (der alle Rechte besitzt) braucht ein Passwort um sich einloggen zu können.

Einen neuen User anlegen und ihm einen Datenbank zuweisen

Der neue User soll "arnold" und seine Datenbank "muster_db" heißen. Als Passwort wählen wir "terminator". Wir gehen davon aus, daß wir noch als root eingeloggt sind. Zuerst wechseln wir in die Datenbank mysql und erzeugen anschließend den neuen user mit dem befehl grant. Zum Schluß wird noch die Datenbank muster_dn mit dem Befehl create erzeugt.

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> grant all on muster_db.* to arnold@localhost identified by 'terminator';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
mysql> create database muster_db;
Query OK, 1 rows affected (0.02 sec)

Ergebnis: Der neu angelegte user hat in seiner Datenbank alle Rechte, in allen anderen Datenbanken jedoch keine Rechte. Auch keine leserechte. Und das ist auch sinnvoll so!

"leeren" User löschen

Der letzte Schritt in unserem Minihowto ist das Löschen des leeren users. Dazu müssen wir natürlich auch als root eingeloogt sein.

mysql> use mysql;
Reading table information for completion of table and column names You can turn off this feature 
to get a quicker startup with -A
Database changed
mysql> delete from user where user="";
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

Ausblick

Die Benutzerverwaltung in mysql ist extrem flexibel und beliebig aufwendig. Falls Sie also noch Herausforderungen suchen, empfehle ich Ihnen sich in dieses Thema einzuarbeiten.;-)


Viel Spass

Siegfried Jahnel::Software and more...
www.sj-sam.de



Seitenanfang