Informatik :: PHP + MySQL :: Rechte
Ein relationales Datenbanksystem ist so angelegt, dass Informationen relativ leicht in ihm gespeichert und wiedergewonnen werden können.
Oft sind in einem solchen System Daten gespeichert, auf die nicht jedermann Zugriff haben soll. Diese Daten müssen also geschützt werden.
Häufig ist es so, dass nur ein bestimmter Personenkreis auf spezielle Daten zugreifen und sie verändern darf.
Wie umfassend der Schutz sein soll, hängt von den Daten und vom relevanten Personenkreis ab, d.h. Rechte werden je nach den Anforderungen vergeben.
Der Administrator des MySQL-Servers kann mit GRANT und REVOKE Zugriffsrechte auf 4 verschiedenen Ebenen einstellen:
Hinweis:
In einer geschützten Umgebung, z.B. im Webspace eines Providers, stehen die Befehle GRANT und REVOKE in der Regel nicht zur Verfügung.
Der jeweils eingerichtete Benutzer hat keine Berechtigung, Rechte zu vergeben bzw. zu entziehen.
Rechtetypen:
Rechte_Typ | Bedeutung |
---|---|
ALL PRIVILEGES | alle Rechte |
USAGE | keine Rechte |
ALTER CREATE DELETE DROP FILE GRANT INDEX INSERT PROCESS RELOAD SELECT SHUTDOWN |
erteilt dem Benutzer das Recht, diese Befehle zu nutzen |
Der Befehl GRANT vergibt Rechte, während der Befehl REVOKE sie entzieht.
Allgemein
GRANT Rechte_Typ [(Spaltenliste)] ON {Tabellenname | * | *.* | Datenbankname.*} TO Benutzername [IDENTIFIED BY 'password'] [WITH GRANT OPTION];
bzw.
REVOKE Rechte_Typ [(Spaltenliste)] ON {Tabellenname | * | *.* | Datenbankname.*} FROM Benutzername
Beispiel 1:
Der Nutzer "Mueller" soll auf die Datenbank "test" alle Rechte erhalten:
GRANT ALL PRIVILEGES ON test TO Mueller
Beispiel 2:
Der Nutzer "Meier" darf in der Tabelle "person" der Datenbank "test" nur Datensätze einfügen:
GRANT INSERT ON test.person TO Meier
Beispiel 3:
Der Nutzer "Kunze" darf aus der Tabelle "person" der Datenbank "test" nur die Felder "Name" und "Vorname" einsehen (abfragen):
GRANT SELECT (Name,Vorname) ON test.person TO Kunze
Beispiel 4:
Dem Nutzer "Kunze" sollen alle Rechte auf die Tabelle "person" der Datenbank "test" entzogen werden:
REVOKE ALL PRIVILEGES ON test.person FROM Kunze