Beim Start liest mysqld den gesamten Inhalt der Grant-Tabellen in den Speicher. Die Tabellen im Arbeitsspeicher werden zu diesem Zeitpunkt für die Zugriffssteuerung verbindlich.
Wenn der Server die Grant-Tabellen neu lädt, sind Berechtigungen für vorhandene Clientverbindungen hiervon wie folgt betroffen:
Änderungen an Berechtigungen für Tabellen und Spalten werden beginnend mit der nächsten Anforderung des Clients gültig.
Datenbankberechtigungen werden bei der nächsten
USE
-Anweisung
gültig.
db_name
Änderungen an globalen Berechtigungen und Passwörtern werden gültig, wenn der Client beim nächsten Mal eine Verbindung herstellen will.
Wenn Sie die Grant-Tabellen indirekt mit Anweisungen wie
GRANT
, REVOKE
oder
SET PASSWORD
modifizieren, bemerkt der Server
diese Änderungen und lädt die Grant-Tabellen sofort wieder neu
in den Speicher.
Ändern Sie die Grant-Tabellen hingegen direkt mit Anweisungen
wie INSERT
, UPDATE
oder
DELETE
, dann werden Ihre
berechtigungsbezogenen Änderungen erst umgesetzt, wenn Sie den
Server neu starten oder ihn zum Neuladen der Tabellen anweisen.
Um die Grant-Tabellen manuell neu zu laden, setzen Sie eine
FLUSH PRIVILEGES
-Anweisung ab oder führen
den Befehl mysqladmin flush-privileges oder
mysqladmin reload aus.
Wenn Sie die Grant-Tabellen ändern, aber vergessen, sie neu zu laden, dann werden Ihre Änderungen erst dann umgesetzt, wenn Sie den Server neu starten. Unter Umständen wundern Sie sich aus diesem Grund darüber, dass Ihre Änderungen überhaupt keinen Unterschied zu machen scheinen!
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.