194 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
’x.y.%’ ’fred’ fred, der sich von x.y.net, x.y.com, x.y.edu usw.
aus verbindet (wahrscheinlich eher unsinnig)
’144.155.166.177’ ’fred’ fred, der sich vom Host mit der IP-Adresse
144.155.166.177 aus verbindet
’144.155.166.%’ ’fred’ fred, der sich von jedem beliebigen Host im Class-
C-Subnet 144.155.166 aus verbindet
’144.155.166.0/255.255.255.0’’fred’ Dasselbe wie im vorherigen Beispiel
Weil Sie im Host-Feld IP-Platzhalterwerte verwenden k¨onnen (beispielsweise
’144.155.166.%’, was mit jedem Host in einem Subnet ¨ubereinstimmt), besteht die
M¨oglichkeit, dass jemand diese F¨ahigkeit ausbeutet, indem er einen Host zum Beispiel
144.155.166.somewhere.com nennt. Um solche Versuche zu vereiteln, verbietet MySQL
den Vergleich mit Hostnamen, die mit Ziffern und einem Punkt ¨ubereinstimmen. Wenn
Sie daher einen Host haben, der so wie 1.2.foo.com benannt ist, wird sein Name nie mit
der Host-Spalte der Berechtigungstabellen ¨ubereinstimmen. Nur eine IP-Nummer kann
mit dem IP-Platzhalterwert ¨ubereinstimmen.
Eine hereinkommende Verbindung kann mit mehr als einem Eintrag in der user-Tabelle
¨ubereinstimmen. Beispielsweise w¨urde eine Verbindung von thomas.loc.gov aus durch
fred mit mehreren der oben genannten Eintr¨age ¨ubereinstimmen. Wie entscheidet der
Server, welcher der Eintr¨age benutzt werden soll, wenn mehrere zutreffen? Der Server l¨ost
dieses Problem, indem er die user-Tabelle nach dem Einlesen beim Start sortiert, und
danach die Eintr¨age in sortierter Form durchsieht, wenn ein Benutzer versucht, sich zu
verbinden. Der erste ¨ubereinstimmende Eintrag ist der, der benutzt wird.
Das Sortieren der user-Tabelle funktioniert wie folgt. Nehmen Sie an, dass die user-Tabelle
so aussieht:
+-----------+----------+-
| Host | User | ...
+-----------+----------+-
| % | root | ...
| % | jeffrey | ...
| localhost | root | ...
| localhost | | ...
+-----------+----------+-
Wenn der Server die Tabelle liest, ordnet er die Eintr¨age mit den spezifischsten Eintr¨agen
f¨ur die
Host
-Werte zuerst ein (
’%’
in der
Host
-Spalte bedeutet “jeder Host” und ist am
unspezifischsten). Eintr¨age mit denselben Host-Werten werden mit den spezifischsten User-
Werten zuerst geordnet (ein leerer User-Wert bedeutet “jeder Benutzer” und ist am unspez-
ifischsten). Die daraus resultierende sortierte user-Tabelle sieht wie folgt aus:
+-----------+----------+-
| Host | User | ...
+-----------+----------+-
| localhost | root | ...
| localhost | | ...
| % | jeffrey | ...
| % | root | ...
+-----------+----------+-
Comentarios a estos manuales