Die folgenden mysqld-Optionen sind sicherheitsrelevant:
--allow-suspicious-udfs
Diese Option bestimmt, ob UDFs (User-Defined Functions,
benutzerdefinierte Funktionen), die nur ein
xxx
-Symbol für die Hauptfunktion
aufweisen, geladen werden dürfen. Standardmäßig ist die
Option deaktiviert, und es dürfen nur UDFs geladen werden,
die mindestens ein Hilfssymbol aufweisen. Hierdurch soll das
Laden von Funktionen aus solchen freigegebenen Objektdateien
verhindert werden, die keine zulässigen UDFs enthalten.
Siehe auch Abschnitt 26.3.4.6, „Vorsichtsmaßnahmen bei benutzerdefinierten Funktionen (UDF)“.
--local-infile[={0|1}]
Wenn Sie den Server mit --local-infile=0
starten, können Clients LOCAL
in
LOAD DATA
-Anweisungen nicht verwenden.
Siehe auch Abschnitt 5.7.4, „Sicherheitsprobleme mit LOAD DATA LOCAL
“.
--old-passwords
Erzwingt die Erzeugung kurzer Passwort-Hashes (wie vor Version 4.1) auch für neue Passwörter. Dies kann zu Kompatibilitätszwecken erforderlich sein, wenn der Server ältere Clientprogramme unterstützen muss. Siehe auch Abschnitt 5.8.9, „Kennwort-Hashing ab MySQL 4.1“.
--safe-show-database
(AUSGELAUFEN)
In älteren MySQL-Versionen konnte mit dieser Option
festgelegt werden, dass die SHOW
DATABASES
-Anweisung die Namen nur derjenigen
Datenbanken anzeigte, für die der Benutzer eine
entsprechende Berechtigung hatte. In MySQL 5.1
steht diese Option nicht mehr zur Verfügung, da dies nun
das Standardverhalten ist und es eine SHOW
DATABASES
-Berechtigung gibt, die zur
kontenspezifischen Steuerung des Zugriffs auf Datenbanknamen
verwendet werden kann. Siehe auch Abschnitt 13.5.1.3, „GRANT
und REVOKE
“.
--safe-user-create
Wenn diese Option aktiviert ist, kann ein Benutzer nur dann
neue Benutzer mit der GRANT
-Anweisung
erstellen, wenn er die Berechtigung
INSERT
für die Tabelle
mysql.user
hat. Wenn Sie wollen, dass ein
bestimmter Benutzer die Möglichkeit zur Einrichtung neuer
Benutzer hat, die diejenigen Berechtigungen haben, die der
erstellende Benutzer gewähren darf, dann sollten Sie dem
Benutzer die folgende Berechtigung gewähren:
GRANT INSERT(user) ON mysql.user TO 'user_name
'@'host_name
';
Hierdurch ist gewährleistet, dass der Benutzer
Berechtigungsspalten nicht direkt ändern kann, sondern die
GRANT
-Anweisung zur Gewährung von
Berechtigungen an andere Benutzer verwenden muss.
--secure-auth
Unterbindet die Authentifizierung für Konten, die alte Passwörter (d. h. solche im Stil vor MySQL 4.1) haben.
Der Client mysql verfügt ebenfalls über
eine Option namens --secure-auth
, die
Verbindungen mit einem Server verhindert, wenn dieser für
das Clientkonto ein Passwort im alten Format anfordert.
--skip-grant-tables
Mit dieser Option verwendet der Server das
Berechtigungssystem überhaupt nicht. Das bedeutet, dass
jeder, der Zugriff auf den Server erhält,
uneingeschränkten Zugang zu
allen Datenbanken bekommt. Sie können
einen laufenden Server dazu bringen, die Grant-Tabellen
wieder zu verwenden, indem Sie mysqladmin
flush-privileges oder mysqladmin
reload über die System-Shell ausführen oder die
MySQL-Anweisung FLUSH PRIVILEGES
absetzen. Diese Option unterbindet auch das Laden von
Plug-Ins und benutzerdefinierten Funktionen (UDFs).
--skip-name-resolve
Hostnamen werden nicht aufgelöst. Alle
Host
-Spaltenwerte in den Grant-Tabellen
müssen IP-Nummern oder localhost
sein.
--skip-networking
TCP/IP-Verbindungen über das Netzwerk werden unterbunden. Alle Verbindungen zu mysqld müssen über Unix-Socketdateien erfolgen.
--skip-show-database
Bei dieser Option darf die SHOW
DATABASES
-Anweisung nur von Benutzern verwendet
werden, die die Berechtigung SHOW
DATABASES
haben. Die Anweisung zeigt dann alle
Datenbanknamen an. Ohne diese Option dürfen alle Benutzer
SHOW DATABASES
verwenden, aber die
Datenbanknamen werden nur angezeigt, wenn der Benutzer die
Berechtigung SHOW DATABASES
oder
spezifische Berechtigungen für eine Datenbank hat. Beachten
Sie, dass jede globale Berechtigung als Berechtigung für
die Datenbank betrachtet wird.
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.