|
Zurück
Nachfolgend eine Teil-Übersetzung des MySQL-Manuals. Es handelt
sich bislang nur um das Kapitel 6 - "Wie arbeiten die MySQL-Rechte".
Ursache ist
- die hohe Sensibilität dieses Themas
- verbunden mit der Komplexität der Implementierung
- unter spezieller Berücksichtigung der allgemeinen
Fähigkeit englische Dokumentation flüssig zu lesen
(auch meiner)
:-))))).
Wie arbeiten die MySQL-Rechte?
MySQL hat ein fortschrittliches aber vom Standard abweichendes
Sicherheits/Rechte-System.
Was kann das Rechte-System für sie erledigen?
Die grundlegende Funktion des MySQL-Rechte-Systems ist es einem Username
auf einem Host die SELECT, INSERT, UPDATE und DELETE Rechte bzgl. einer
Datenbank zu erteilen.
Außerdem besteht die Möglichkeit eines "anonymous"-Users und
mit der evtl. Erlaubnis MySQL-spezifische Funktionen wie LOAD DATA INFILE zu
benutzen.
Bitte beachten sie, daß die Usernamen für eine SQL-Datenbank, wie
MySQL, nichts mit Unix-Usern zu tun haben. Zur Vereinfachung versuchen die
meisten MySQL-Clients sich mit dem aktuellen Usernamen einzuloggen, aber
dies kann mit dem --user Schalter geändert werden. Dies bedeutet auch,
daß sie eine Datenbank ohne Passwörter für alle User
nicht absichern können.
6.2 Wie arbeitet das Rechte-System?
MySQL versteht die Kombination aus einem Host und einem User als eindeutige
Identität. Denken Sie bei der Arbeit mit den MySQL-Rechten nicht
an User, denken sie an Host+User und alles sollte wesentlich klarer sein.
Sie können z.B. einen User namens ´Robb´ auf zwei unterschiedlichen Hosts
(mit unterschiedlichen Rechten) in MySQL ohne Konflikte verwalten.
Das MySQL Rechtesystem stellt sicher, daß jeder User genau die Dinge
tun kann die ihm zugeteilt wurden. In Abhängigkeit davon welcher
xuser sich von welchem host an welcher Datenbank anmeldet
entscheidet MySQL die jeweilige Rechtezuteilung.
Sie können ihre Rechte jederzeit mit dem script mysqlaccess testen,
welches Yves Carlier zur MySQL-Distribution beigesteuert hat.
- Siehe dazu Abschnitt 6.7 Warum erhalte ich den Fehler Access denied?
- Siehe dazu Abschnitt 6.8 Wie schütze ich MySQL gegen crackers?
Alle Rechte werden in den drei Tabellen user, host und db gespeichert.
Jedes in der user-Tabelle erteilte Recht ist für alle Datenbanken
gütig die in der db-Tabelle nicht gefunden werden können. Deshalb
könnte es klug sein den einzelnen Usern (vom Supervisor abgesehen)
ihre Rechte nur auf Datenbank-Ebene zuzuteilen.
Die host-Tabelle existiert hauptsächlich um eine Liste "sicherer"
Server zu verwalten. Bei TcX enthält die host-Tabelle eine Liste
aller Rechner im lokalen Netzwerk. Diesen werden Rechte erteilt.
Die Rechte des sich gerade anmeldenden Users werden nach dem folgenden
Algorithmus festgestellt:
- Zuerst wird der Inhalt der Tabellen nach folgendem Schema sortiert:
| Tabelle | Sortierung nach: |
| host |
Zuerst die hosts ohne Wildcards, gefolgt von host mit einer
Wildcard und Einträgen mit host = "".
|
| db | Nach host ohne wild/host mit wild/leeren hosts |
| user | host/user |
Die Tabelle host wird nach Hosts ohne Wildcard, gefolgt von hosts
mit einer Wildcard und Einträgen mit host="" sortiert.
Innerhalb jedes hosts, wird nach den gleichen Regeln nach dem
user sortiert. Die Tabelle db wird nach den gleichen Regeln sortiert.
Bei den nachfolgenden Schritten wird in den so sortierten
Datens&aum;tzen nachgesehen und der erste passende Datensatz
verwendet.
- Die Rechte des sich anmeldenden Benutzers werden aus der Tabelle
user entnommen. Dabei wird wie bereits weiter oben beschrieben
der erste passende Datensatz aus der vorher sortierten Tabelle
verwendet. Den so erhaltenen Satz an Rechten nennen wir Priv.
- Die Rechte des sich anmeldenden Benutzers werden aus der
Tabelle db entnommen. Auch hier wird die vorher sortierte Tabelle
und der erste passende Datensatz verwendet.
- Falls der in der db-Tabelle gefundene Datensatz den Eintrag
host="" enthält, so werden die ursprünglichen Rechte
Priv aus der user-Tabelle mit den Host-Rechten aus der
host-Tabelle logisch ver-UND-et. D.h. im Klartext: Aus beiden
Datensätzen werden alle Rechte entfernt bei denen nicht
in beidesmal "Y" eingetragen ist. Falls host<>"" ist, so
werden die Rechte von Priv nicht verändert. In solchen
Fällen muß der host-Eintrag zumindest teilweise mit dem
Hostname des verbindenden Hosts übereinstimmen. Deshalb
kann angenommen werden, daß die in dieser Zeile festgelegten
Rechte dem Profil des sich anmeldenden hosts entsprechen.
- Die Rechte des Users aus der Tabelle user werden
anschließend mit dem Priv-Rechtesatz logisch
ver-ODERt (d.h. alle Y-Rechte werden hinzugefügt).
Achtung: Falls Sie in den Rechte-Tabellen etwas geändert
haben, müssen Sie eine mysqladmin reload durchführen
um die Änderungen zu aktivieren!!!
Der sich anschließende User erhält das
Priv-Rechte-Set. Nachfolgend ein Beispiel für das
Sortieren und Auffinden der richtigen Datensätze. Nehmen wir
an die user-Tabelle sieht folgendermaßen aus:
+-----------+---------+-
| Host | User | ...
+-----------+---------+-
| % | root | ...
| % | jeffrey | ...
| localhost | root | ...
| localhost | | ...
+-----------+---------+-
Die Suchreihefolge sieht dann (nach erfolgter Sortierung)
folgendermaßen aus:
- localhost/root
- localhost/any
- any/jeffrey
- any/root
Jeffrey der sich via localhost anmeldet wird deshalb mit dem
Rechtesatz localhost/any und nicht mit dem Satz any/jeffrey
ausgestattet. Immer der erste passende Eintrag wird verwendet.
Falls sie also Probleme mit den Zugriffsrechten haben, drucken
sie den Inhalt der Tabelle user aus, sortieren ihn von Hand und
stellen den ersten passenden Datensatz fest. Es folgt nun ein
Beispiel um den user "custom" hinzuzufügen der sich von
den Hosts "localhost", "server.domain" und "whitehouse.gov"
anmelden darf. Er möchte das Password "stupid" haben. Die
Datenbank "bankaccount" möchte er nur via "localhost", die
Datenbank "customer" von allen drei hosts aus erreichen können.
shell> mysql mysql.
mysql> insert into user (host,user,password)
values('localhost','custom',password('stupid'));
mysql> insert into user (host,user,password)
values('server.domain','custom',password('stupid'));
mysql> insert into user (host,user,password)
values('whitehouse.gov','custom',password('stupid'));
mysql> insert into db
(host,db,user,Select_priv,Insert_priv,Update_priv,Delete_priv,
Create_priv,Drop_priv)
values
('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y');
mysql> insert into db
(host,db,user,Select_priv,Insert_priv,Update_priv,Delete_priv,
Create_priv,Drop_priv)
values
('%','customers','custom','Y','Y','Y','Y','Y','Y');
Sie können selbstverständlich xmysqladmin, mysql_webadmin,
mysqladmin und xmysql verwenden um in den Rechte-Tabellen
Datensätze einzufügen/abzuändern. Sie finden diese
Utilities im Contrib-Verzeichnis.
Die Rechtevergabe-Tabellen
Die für Tabellen relevanten Rechte sind select, insert,
update und delete.
Die Rechte für Tabellen und Datenbanken sind create und
drop. "Create" und "drop"-Recht gelten für beides - Tabellen und
Datenbanken. Falls ein User nälich alle Tabellen einer Datenbank
löschen darf, kann er auch gleich das Recht erhalten die ganze
Datenbank zu löschen.
Andere Rechte vergeben die Berechtigung um Dateien zu benutzen (für LOAD
DATA INFILE und SELECT INTO OUTFILE) und Administrations-Kommandos
wie shutdown, reload, refresh und process
auszuführen.
Das Rechtevergabesystem basiert auf 3 Tabellen.
user Tabelle
-
Sie beinhaltet alle host+user Kombinationen die das Recht haben sich
an den mysql-Server anzumelden und enthält gegebenenfalls noch
deren Password. Die
user-Tabelle hat die folgenden
Datenfelder:
| Datenfeld | Datentyp | Schlüssel |
Standardwert
|
| Host | char(60) | PRI | ""
|
| User | char(16) | PRI | ""
|
| Password | char(16) | - | ""
|
| Select_priv | enum('N','Y') | - | N
|
| Insert_priv | enum('N','Y') | - | N
|
| Update_priv | enum('N','Y') | - | N
|
| Delete_priv | enum('N','Y') | - | N
|
| Create_priv | enum('N','Y') | - | N
|
| Drop_priv | enum('N','Y') | - | N
|
| Reload_priv | enum('N','Y') | - | N
|
| Shutdown_priv | enum('N','Y') | - | N
|
| Process_priv | enum('N','Y') | - | N
|
| File_priv | enum('N','Y') | - | N
|
db-Tabelle
Legt fest welche Datenbanken ein host+user benutzen kann und was er mit
den Tabellen in jeder Datenbank machen kann. Die db-Tabelle
hat die folgenden Datenfelder:
| Datenfeld | Typ | Schlüssel |
Standardwert
|
| Host | char(60) | PRI | ""
|
| Db | char(64) | PRI | ""
|
| User | char(16) | PRI | ""
|
| Select_priv | enum('N','Y') | - | N
|
| Insert_priv | enum('N','Y') | - | N
|
| Update_priv | enum('N','Y') | - | N
|
| Delete_priv | enum('N','Y') | - | N
|
| Create_priv | enum('N','Y') | - | N
|
| Drop_priv | enum('N','Y') | - | N
|
host-Tabelle
Wird nur in großen Netzwerken benutzt um bei leeren host-Einträgen
in der db-Tabelle nachzuschauen. D.h. falls sie einem User gestatten wollen
Datenbanken von jedem Host in ihrem Netzwerk zu benutzen, sollten Sie " als
Hostname in der db-Tabelle eintragen. In diesem Fall sollte die
host-Tabelle für jeden Host ihres Netzwerks einen
Eintrag aufweisen. Die host-Tabelle hat die folgenden Datenfelder:
| Datenfeld | Typ | Schlüssel |
Standardwert
|
| Host | char(60) | PRI | ""
|
| Db | char(64) | PRI | ""
|
| Select_priv | enum('N','Y') | - | N
|
| Insert_priv | enum('N','Y') | - | N
|
| Update_priv | enum('N','Y') | - | N
|
| Delete_priv | enum('N','Y') | - | N
|
| Create_priv | enum('N','Y') | - | N
|
| Drop_priv | enum('N','Y') | - | N
|
-
Die host und db Spalten können eine Zeichenkette
mit der SQL-Wildcard
% and _ enthalten. Wenn sie
irgendeine dieser Spalten leer lassen, so ist das gleichbedeutend mit
dem Eintrag '%'.
-
Ein host kann
localhost, ein Hostname, eine IP-Nummer
oder eine Zeichenkette mit Wildcards sein. Ein leerer Host in der
db-Tabelle gilt für alle Hosts in der host-Tabelle. Ein leerer
Host in der host- oder user-Tabelle gilt für alle Hosts
die eine TCP-Verbindung zu ihrem Server aufbauen können.
-
db ist der Name einer Datenbank oder ein SQL regulärer
Ausdurck (regexp).
-
Eine leere user Spalte bedeutet, daß jeder Username gültig
ist. Wildcards im Username sind nicht zulässig.
-
Ein user auf den nichts in der
user-Tabelle paßt wird
wie ein no-name user behandelt.
-
Die Rechte der user-Tabelle werden mit der
db-Tabelle
ver-OR-d. Das bedeutet, daß der superuser einfach nur einen Eintrag
in der user-Tabelle haben muß in dem alle Rechte-Flags
auf Y gesetzt sind.
Sie können einen Eintrag wie 123.444.444.% in der
host-Tabelle verwenden um jedem User eines IP-Klasse-C-Netzes
Zugriff zu ermöglichen. Um zu verhindern, daß jemand
durch Benennung seines Hosts als 123.444.444.somewhere.com
in das System eindringt, verbietet MySQL alle
Hostnames die mit Zahlen oder einem Punkt beginnen. Falls also ihr
Rechner 1.2.foo.com oder so heißt, wird er durch
Namensüberprüfung nie Zugang erhalten. Verwenden sie in diesem
Fall seine IP-Nummer in der Rechtevergabe.
6.4 Hinzufügen neuer user-Rechte zu MySQL
Um Rechte zur MySQL-Datenbank hinzuzufügen:
Dies setzt vorraus, daß der gegenwärtige User insert-Rechte
für die mysql-Datenbank und reload-Rechte
hat. Der DB-Server (mysqld) muß gestartet sein. Falls er noch
nicht gestartet ist, starten sie ihn mit
safe_mysqld --log &.
> mysql mysql
insert into user values ('%','monty',password('something'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y') ;
insert into user (host,user,password) values('localhost','dummy',") ;
insert into user values ('%','admin',",'N','N','N','N','N','N','Y','N','Y','Y') ;
quit
> mysqladmin reload
Dies erzeugt drei neue User:
Monty
-
Voller superuser, muß aber ständig ein Passwort bei der Arbeit
mit MySQL benutzen.
admin
-
Braucht kein Passwort, kann aber nur
mysqladmin reload,
mysqladmin refresh und mysqladmin processlist
ausführen. Es können ihm individuelle Datenbank-Rechte durch
die db-Tabelle eingeräumt werden.
dummy
-
Ihm müssen individuelle Datenbank-Rechte durch die
db-Tabelle eingerichtet werden.
6.5 Default Rechte
Die default Rechte (wurden durch `scripts/mysql_install_db'
gesetzt) lassen den User root alles tun. Jeder User kann mit jeder
Datenbank deren Name 'test' ist oder mit 'test_' beginnt alles tun.
Ein normaler User kann mysqladmin shutdown oder
mysqladmin processlist nicht benutzen. Sehen sie sich
das Skript (`scripts/mysql_install_db') als Beispiel an
wie man andere User hinzufügt.
Die Rechte-Tabellen werden mit mysqladmin reload durch
mysqld eingelesen.
6.6 Ein Beispiel für die Rechte-Vergabe
Ein üblicher Fehler ist es zu vergessen, daß Passwörter
verschlüsselt abgespeichert werden. Dies führt zum Beispiel zu
folgendem:
INSERT INTO user VALUES ('%','jeffrey','bLa81m0','Y','Y','Y','N','N','N','N','N', 'N','N');
Dann (ist selbstverständlich) ein mysqladmin reload
um die Änderung an der Authentifizierung zu aktivieren.
Es folgt ein Versuch sich beim Server anzumelden:
$ ./mysql -h sqlserver -u jeffrey -p bLa81m0 test
Access denied
Versuchen sie stattdessen folgendes:
INSERT INTO user VALUES
('%','jeffrey',password('bLa81m0'),'Y','Y','Y','N','N','N','N','N','N','N');
Wie vorher, mysqladmin reload um die Äderungen an den
Rechten zu aktivieren.
Nun sollte es wie gewünscht funktionieren.
6.7 Warum erhalte ich einen Access denied? Fehler?
-
Haben sie die MySQL-Rechte-Tabellen mit dem Skript
`mysql_install_db' installiert? Testen sie dies durch
Ausührung von
mysql -u root test. Das dürfte
keinen Fehler ergeben. Sie können auch überprüfen ob
sie eine Datei 'user.IDS' im mysql-Datenbank-Verzeichnis haben
(üblicherweise unter install_dir/var/mysql/user.ISD).
-
Bei einer Erstinstallation sollten sie 'mysql -u root mysql'
benutzen um Zugang zu den Rechte-Tabellen zu erhalten
-
Denken sie daran, daß sie bei jeder Änderung der Rechte
in den Rechte-Tabellen durch Ausführung von
mysqladmin reload diese Änderungen aktivieren müssen.
Andernfalls werden nach wie vor die Einstellungen im alten
Zustand benutzt.
-
Für Testzwecke sollten sie den mysqld-Dämon mit der
--without-grant-tables Option starten. Nun können sie
die MySQL-Rechte-Tabellen ändern und mit Hilfe
des Skripts mysqlaccess überprüfen ob ihre Einstellungen
funktionieren. mysqladmin reload sagt dann dem mysqld-Dämon,
daß er die neuen Rechte-Tabellen benutzen soll.
-
Selbst wenn sie mit Perl, Python, oder ODBC Zugriffsprobleme haben,
sollten sie immer mit
mysql -u user database oder
mysql -u user -ppassword database ihre Rechteprobleme
testen. Mann kann auch den --password=your_password
Syntax benutzen um das Passwort zu übergeben.
-
Falls sie bei einer Anmeldung mit
mysql -u user database
die Fehlermeldung 'Access denied' erhalten, dann haben sie ein
Problem mit der 'user'-Tabelle. Überprüfen sie dies
durch mysql -u root mysql und select * from user.
Sie sollten einen Eintrag mit 'hostname' und 'user' erhalten der
auf ihren Rechnername und ihren Usernamen paßt. Falls der
Client und der Server auf demselben Rechner laufen, sie die
--host-Option nicht benutzt haben und sie die
MIT-pthreads nicht benutzen, dann ist 'localhost' ein Synonym
für ihren Rechnername.
-
Die Fehlermeldung
Access denied sagt ihnen wer sie
sind während sie sich anzumelden versuchen, von welchem Host aus
sie sich anmelden und ob sie ein Passwort benutzt haben oder nicht.
Sie sollten normalerweise einen Eintrag in der user-Tabelle
haben der genau wie in der Fehlermeldung angegeben auf ihren Rechner-
und Username paßt.
-
Falls sie die Fehlermeldung 'Host ... is not allowed to connect to this MySQL
server' erhalten wenn sie versuchen sich an einem MySQL-Server auf einer
anderen Maschine anmelden, dann haben sie keinen Datensatz in der User-Tabelle
die auf die Remote-Maschine paßt. Sie können dies beheben indem
sie das Kommandozeilen-Tool 'mysql' benutzen und für die Maschinen/User-Kombination
mit der sie sich anmelden wollen einen Datensatz zur user-Tabelle
hinzufügen. Falls sie nicht MySQL 3.22 installiert haben
und nicht genau wissen mit welcher IP/Hostname-Kombination sie sich anzumelden versuchen,
dann sollten sie einen Eintrag mit '%' als Host in der user-Tabelle einfügen
und mysqld mit der Option --log restarten. Nach einem Anmeldeversuch finden sie dann
Informationen im MySQL log wie sie sich tatsächlich angemeldet
haben.
-
Falls
mysql -u root test funktioniert, aber mysql -h your_hostname -u
root test die Fehlermeldung 'Access denied' erzeugt, dann haben
sie nicht den richtigen Namen für ihren Rechner in der user-Tabelle.
Falls sie z.B. einen Eintrag mit host 'tcx' in der 'user'-Tabelle haben, ihr
DNS aber dem MySQL-Server sagt, daß ihr Hostname
'tcx.subnet.se' ist, dann wird dieser Eintrag nicht funktionieren.
Probieren sie es mit einem Datensatz der die IP-Nummer ihres Hosts in der
'user'-Tabelle hat. Sie können natürlich auch einen Host mit
einer Wildcard (z.B. 'tcx%') zur 'user'-Tabelle hinzufügen (beachten
sie aber bitte, daß Hostnamen die mit '%' aufhören eine
Sicherheitslücke darstellen).
-
Falls es ihnen nicht gelingt festzustellen warum sie die Fehlermeldung
'Access denied' erhalten, dann entfernen sie alle Einträge die
Wildcards (Einträge die % oder _ enthalten) im Hostname enthalten
aus der user-Tabelle! Ein häfiger Fehler ist, daß man einen
neuen User hinzufügt der host='%' und user='some user' hat und
glaubt, daß einem das erlaubt sich auch vom selben Rechner
'localhost' anzumelden. Der Grund warum das nicht funktioniert
ist ein genauerer Eintrag mit host='localhost' und user=" der
gegenüber dem neuen Eintrag bevorzugt wird wenn man sich
von 'localhost' anmeldet. Die richtige Vorgehensweise ist es, eine
zweiten Datensatz mit host='localhost' und user='some_user'
vorzunehmen oder den Eintrag mit user=" zu entfernen.
-
Bei der Benutztung der MIT-pthreads, wird localhost nie benutzt. Alle
Verbindungen zum mysql-Daemon laufen über TCP/IP und sie müssen
ihren richtigen Hostnamen in 'user' haben selbst wenn sie den Client
auf dem gleichen Rechner benutzen auf dem auch der Server läuft.
-
Falls sie die Fehlermeldung 'Access to database denied' erhalten, dann
haben sie ein Problem mit der db-Tabelle. Falls der benutzte Eintrag
in der db-Tabelle einen leeren Hostname hat, dann überprüfen
sie auch den zughörigen Eintrag in der 'host'-Tabelle.
-
Falls
mysql -u user database auf dem Server-Rechner
funktionert, mysql -u host -u user database aber nicht
auf einem anderen Client-Rechner geht, dann haben sie diesen
Client-Rechner nicht in der 'user'- oder 'db'-Tabelle.
-
Falls es mit Password's nicht funktioniert, dann denken sie daran,
daß Passwörter mit der PASSWORD-Funktion eingefügt
werden müssen. Schauen sie im Abschnitt '6.6 Ein Beispiel für die Rechte-Vergabe'
nach.
-
Falls
mysql -u user test funktioniert, mysql -u user
other_database aber nicht, dann haben sie die other_database
nicht in der 'db'-Tabelle.
-
Falls sie die Fehlermeldung 'Access to database denied' bei der Benutzung
von
SELECT ... INTO OUTFILE oder LOAD DATAi
SQL Befehlen erhalten, dann haben sie wahrscheinlich das
File_priv-Recht für sich nicht in der 'user'-Tabelle.
-
Falls alles fehlschlägt, dann starten sie den
mysqld
Daemon mit: --debug=d,general,query. Dadurch werden Informationen
über den Host und User ausgegeben der sich anzumelden versucht und
außerdem erhalten sie Informationen über jedes Kommando.
Sie dazu auch >18.10 Debugging MySQL.
-
Falls sie irgendwelche weiteren Probleme mit den
MySQL-Rechte-Tabellen haben und das Gefühl haben diese
auf der Mailing-Liste zu veröffentlichen, dann fügen sie immer
einen Dump der MySQL-Rechte-Tabellen hinzu. Sie können
diesen Tabellendump mit dem Befehl
mysqldump mysql
durchführen. Wie immer, mailen sie ihr Problem mit dem
mysqlbug-Skript.
-
Falls sie die Fehlermeldung
Can't connect to local mySQL server
oder Can't connect to MySQL server on some_hostname
erhalten, so bedeutet dies, daß der mysqld-Daemon nicht gestartet ist
oder daß sie versuchen sich über den falschen Socket oder den
falschen Port anzumelden. Stellen sie sicher, daß der Socket
existiert (normalerweise /tmp/mysql.sock) oder versuchen sie sich auf
den Port mit Telnet anzumelden: telnet hostname 3306.
Sie können auch mysqladmin version versuchen um
mehr Informationen zu erhalten.
-
Falls sie die Fehlermeldung
Access denied erhalten wenn sie
einen Client ohne jegliche Optionen starten, dann stellen sie sicher, daß
sie keinen alten Passwörter in irgendeiner ihrer option-Dateien haben!
Sehen sie dazu 4.17 Option files.
6.8 Wie sichere ich MySQL gegen Hacker ab
Um ein MySQL System abzusichern sollten sie über
das folgende nachdenken:
Die nachfolgenden Optionen beinflußen die mysqld Sicherheit:
--secure
-
Stelle sicher, daß die IP-Nummer die von
get_hostbyname
geliefert wurde sich auch auf den Original-Hostnamen zurück abbilden
läßt. Dies wurde implementiert um es für jemand außerhalb
schwieriger zu machen sich Zugang zu verschaffen indem er einen
anderen Host vortäuscht. Diese Option fügt auch einige
"sanity checks" für Hostnamen hinzu. Dies ist bei
MySQL 3.21 defaultmäßig abgeschaltet da
es manchmal lange dauert dies zu überprüfen. MySQL 3.22
speichert Hostnamen zwischen und hat dies defaultmäßig eingeschaltet.
--skip-grant-tables
-
Benutze das Rechte-System überhautp nicht. Dies gibt jedem vollen
Zugriff auf alle Datenbanken!
--skip-name-resolve
-
Hostnamen werden nicht aufgelößt. Alle Hostnamen in den Rechte-Tabellen
müssen IP-Nummern oder 'localhost' sein.
--skip-networking
-
Erlaube keine Verbindungen über das Netzwerk (TCP/IP). Alle Verbindungen
zu mysqld werden mit Unix-Sockets durchgeführt. Diese Option funktioniert
auf Systemen mit MIT-pthreads nicht sehr gut da MIT-pthreads die Unix-Sockets
nicht unterstützen.
|