Dies ist eine alte Version des Dokuments!
LU12c - GRANT: Rechte vergeben
Grundform:
GRANT privileg[, ...] ON privileg_level TO 'user'@'host';
Privileg-Level (Scope)
| Level | Schreibweise | Wirkung |
|---|---|---|
| Global | *.* | Serverweit (alle Datenbanken) |
| Datenbank | db.* | Für alle Tabellen in db |
| Tabelle | db.tbl | Nur diese Tabelle |
| Spalte | tbl(spalte) | Nur bestimmte Spalten |
| Routine | PROCEDURE/FUNCTION | Ausführen von Routinen |
Beispiel: Datenbank + Rechte für Benutzer
1. DB & Tabelle anlegen (root)
CREATE DATABASE IF NOT EXISTS bobdb; USE bobdb; CREATE TABLE IF NOT EXISTS todos( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, completed BOOL DEFAULT FALSE );
2. Rechte vergeben (root)
Alle Rechte auf diese DB an bob vergeben:
GRANT ALL PRIVILEGES ON bobdb.* TO 'bob'@'localhost';
3. Kontrolle
SHOW GRANTS FOR 'bob'@'localhost';
4. Test (als bob)
USE bobdb; INSERT INTO todos(title) VALUES ('Learn MySQL'); SELECT * FROM todos;
Hinweis: Für GRANT brauchen Sie entsprechende Admin-Rechte (z. B. als root).
GRANT OPTION erlaubt, eigene Berechtigungen weiterzugeben – sparsam einsetzen.