MySQL Benutzerverwaltung und Berechtigungen erklärt
Benutzer und Berechtigungen in MySQL
Der Benutzer root ist der Administrator und verfügt über alle Berechtigungen in MySQL. Es ist jedoch nicht ratsam, allen Benutzern uneingeschränkten Zugriff auf den Server zu gewähren. Die Integrität von Daten und Strukturen sollte durch die gezielte Zuweisung spezifischer Aufgaben an einzelne Benutzer geschützt werden.
Benutzer und Berechtigungen sind eng miteinander verknüpft. MySQL ermöglicht es, Benutzer zu erstellen und ihnen auf verschiedenen Ebenen spezifische Privilegien zuzuweisen.
Privileg-Ebenen
- Global: Gilt für alle Datenbanken auf einem Server. Dies ist die höchste Berechtigungsstufe.
- Datenbank: Gilt für eine individuelle Datenbank und deren gesamten Inhalt.
- Tabelle: Gilt für einzelne Tabellen und alle darin enthaltenen Spalten.
- Spalte: Gilt für eine spezifische Spalte innerhalb einer Tabelle.
- Routine: Gilt für gespeicherte Prozeduren (Stored Procedures), die aus mehreren SQL-Abfragen bestehen können.
Benutzerverwaltung mit CREATE USER und GRANT
In früheren Versionen wurden Benutzer ausschließlich über die GRANT-Anweisung erstellt. Mit dem Befehl CREATE USER können Benutzer angelegt werden, denen anschließend über GRANT Berechtigungen zugewiesen werden.
Alternativ kann mit GRANT ein Benutzer erstellt und gleichzeitig mit Privilegien ausgestattet werden. Ein Beispiel für die Erstellung eines normalen Benutzers:
mysql> GRANT USAGE ON *.* TO 'anonym'@'localhost' IDENTIFIED BY 'passwort';
Vergabe von Privilegien
Ein Benutzer benötigt spezifische Rechte, um mehr als nur Systemvariablen abzufragen. Mit dem GRANT-Befehl können Sie beispielsweise das Recht erteilen, Daten aus einer bestimmten Tabelle zu lesen. Derselbe Befehl wird verwendet, um bestehenden Benutzern zusätzliche Rechte zu gewähren.
Beispiel für das SELECT-Privileg auf einer Tabelle:
mysql> USE test; mysql> SHOW TABLES;
Wichtige Hinweise zu Berechtigungen
- ON *.*: Globale Berechtigungen für alle Tabellen in allen Datenbanken.
- ON dbname.*: Berechtigungen für alle Tabellen innerhalb einer spezifischen Datenbank.
Übersicht der wichtigsten Privilegien
- ALL: Gewährt alle verfügbaren Privilegien.
- CREATE: Erlaubt das Erstellen neuer Tabellen.
- DELETE: Erlaubt das Löschen von Datensätzen.
- DROP: Erlaubt das Löschen (Droppen) von Tabellen.
- INSERT: Erlaubt das Einfügen von Daten in Tabellen.
- UPDATE: Erlaubt das Aktualisieren von Datensätzen.
Zusätzlich steht der Befehl REVOKE zur Verfügung, um erteilte Berechtigungen wieder zu entziehen.