MYSQL Zugriffsrechtesystem
Bei den MYSQL Datenbanken gibt es wie man sich schon denken kann ein Rechtesystem. Mit diesem kann geregelt werden das nicht jeder alle Daten sehen bzw. ändern oder löschen darf. Das Zugriffssystem von MYSQL ist in zwei Stufen unterteil. Die erste Zugriffsstufe ist dafür zuständig um zu schauen ob ein Benutzer überhaupt mit MYSQL kommunizieren darf. In der zweiten Zugriffstufe wird geregelt welch Befehle ein User bei welche Datenbank, Tabelle und Spalte ausführen darf.
MYSQL wertet beim Login eines Benutzers 3 Informationen aus und zwar den Benutzernamens, das Passwort und den Hostnamen (Rechnername). Bei einer Benutzeranmeldung werden dann diese 3 Informationen geprüft ob sie mit den in der MYSQL Datenbank gespeicherten Login Daten überein stimmen und wenn dem so ist kann der Benutzer die für ihn freigegebenen Datenbanken sehen und bearbeiten.
Die MYSQL Zugriffsrechte kann man mit ein paar Befehlen steuern oder wenn man es etwas komfortabler haben möchte gibt es dafür auch Programme mit einer grafischen Oberfläche oder einem Webinterface. Aber damit man das Rechtesystem von MYSQL erst einmal versteht ist es finde ich gut wenn man sich die Befehle einmal genauer anschaut. Daher habe ich hier eine kleine Befehlsübersicht zum erstellen, löschen und verwalten der Rechte von den Benutzern erstellt:
CREATE USER test@localhost IDENTIYFIED BY ‚pass‘ | Mit diesem Befehl wird ein User mit dem Benutzernamen “test” und dem Passwort “pass” angelegt. |
SHOW GRANTS FOR test@localhost | Zeigt die Berechtigungen des Benutzers “test” an, wenn ihr davor den oben stehenden Befehl eingegeben habt darf der User “test” sich nur einloggen aber hat keine weiteren Rechte. |
DROP USER test@localhost | Löscht den User “test”. |
GRANT ALL ON *.* TO test@localhost | Gibt dem Benutzer “test” Globale Berichtigungen für alle Datenbanken auf dem Server. |
GRANT ALL ON testdb.* TO test@localhost | Gibt dem Benutzer “test” alle Rechte für die Datenbank “testdb”. |
GRANT SELECT ON testdb.Tab TO test@localhost | Gibt dem Benutzer “test” das Leserecht für die Tabelle “Tab” in der Datenbank “testdb”. |
GRANT SELECT, UPDATE, INSERT, DELETE ON testdb.Tab TO test@localhost | Gibt dem Benutzer “test” die Rechte die Tabelle “Tab” in der Datenbank “testdb” zu ändern und zu löschen |
REVOKE SELECT ON testdb.Tab FROM test@localhost | Entfernt die Select Berechtigung bei dem User “test” von der Tabelle “Tab” bei der Datenbank “testdb”. |
Das ist mal ein kleiner Auszug wie man bei MYSQL Benutzer anlegen diesen verschiedene Berechtigungen geben kann und Sie wieder löschen kann wenn sie nicht mehr benötigt werden.