Auf der administrativen Ebene sollten Sie nichtadministrativen
Konten niemals Zugriff auf die Grant-Tabelle
user
gestatten.
Wenn Sie ein Clientprogramm ausführen, um eine Verbindung mit dem MySQL-Server herzustellen, ist es nicht ratsam, Ihr Passwort so einzugeben, dass es von anderen Benutzern erraten werden könnte. Die Methoden, die Sie zur Angabe Ihres Passworts bei Ausführung von Clientprogrammen verwenden können, sind einschließlich einer Risikoeinschätzung jeder Methode nachfolgend aufgeführt:
Sie verwenden die Option
-p
bzw.
your_pass
--password=
auf der Befehlszeile. Zum Beispiel:
your_pass
shell> mysql -u francis -pfrank db_name
Dies ist praktisch, aber unsicher, weil Ihr Passwort für Systemstatusprogramme wie ps sichtbar wird, die von anderen Benutzern zur Anzeige von Befehlszeilen aufgerufen werden können. MySQL-Clients überschreiben das befehlszeilenbasierte Passwortargument bei der Initialisierung normalerweise mit Nullen. Es gibt allerdings noch einen ganz kurzen Zeitraum, für den der Wert sichtbar ist. Auf einigen Systemen ist diese Strategie ohnehin ohne Wirkung, und die Passwörter bleiben für ps sichtbar. (Das Problem tritt etwa bei System V-Unix und unter Umständen auch bei anderen Systemen auf.)
Sie verwenden die Option -p
bzw.
--password
ohne Passwortangabe. In diesem
Fall fordert das Clientprogramm zur Eingabe des Passworts
über das Terminal auf:
shell> mysql -u francis -p db_name
Enter password: ********
Die Zeichen ‘*
’ geben an, wo
Sie Ihr Passwort eingegeben haben. Das Passwort wird bei der
Eingabe nicht angezeigt.
Diese Methode zur Passworteingabe ist sicherer als die Angabe über die Befehlszeile, da das Passwort anderen Benutzern nicht angezeigt wird. Allerdings ist diese Eingabemethode nur für Programme geeignet, die Sie interaktiv ausführen. Wollen Sie einen Client aus einem Skript heraus aufrufen, das nicht interaktiv läuft, dann gibt es keine Möglichkeit, das Passwort über das Terminal einzugeben. Bei manchen Systemen werden Sie sogar feststellen, dass die erste Zeile Ihres Skript gelesen und irrtümlich als Passwort interpretiert wird.
Sie speichern Ihr Passwort in einer Optionsdatei. Unter Unix
etwa können Sie Ihr Passwort im Abschnitt
[client]
der Datei
.my.cnf
im Stammverzeichnis auflisten:
[client] password=your_pass
Wenn Sie Ihr Passwort in .my.cnf
speichern, dann sollte diese Datei ausschließlich für Sie
zugänglich sein. Um dies sicherzustellen, setzen Sie die
Dateizugriffsmethode auf 400
oder
600
. Zum Beispiel:
shell> chmod 600 .my.cnf
Abschnitt 4.3.2, „my.cnf-Optionsdateien“, erläutert Optionsdateien im Detail.
Sie speichern Ihr Passwort in der Umgebungsvariable
MYSQL_PWD
. Diese Methode der Angabe eines
MySQL-Passworts muss als extrem
unsicher betrachtet werden und sollte nicht
verwendet werden. Einige Versionen von ps
enthalten eine Option zur Anzeige der Umgebung laufender
Prozesse. Wenn Sie MYSQL_PWD
einstellen,
wird Ihr Passwort allen Benutzern zugänglich gemacht, die
ps ausführen. Sogar auf Systemen ohne
eine solche Version von ps ist es nicht
ratsam, davon auszugehen, dass keine andere Methoden
vorhanden sind, mit denen Benutzer Prozessumgebungen
untersuchen können. Siehe auch
Anhang F, Umgebungsvariablen.
Insgesamt betrachtet sind die sichersten Methoden die Aufforderung des Clientprogramms zur Eingabe des Passwortes oder die Angabe des Passwortes in einer angemessen geschützten Optionsdatei.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.