| Home - SQL Befehle - Benutzerverwaltung | www.sqldocu.com | |||||||||||||||||||||||||||||||||||||||||||||||
| zurück | vor | |||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
Grundsätzlich hat nur derjenige Zugriff auf ein
Objekt
(Tabellen,
Views,...)
in einem
RDBMS,
wenn er das Objekt erzeugt hat, oder er
DBA
ist.
Neben dem Zugriff auf Objekte innerhalb des RDBMS werden auch sogenannte Systemrechte (Recht
sich mit RDBMS zu verbinden, Benutzer anlegen/löschen...) vergeben.
Dies ist Aufgabe vom DBA und wird hier nicht erklärt (siehe
DBA - Datenbank Administrator,
Benutzer anlegen,
Benutzer löschen).
Der Besitzer eines Objekts kann an anderen Benutzern Rechte auf sein Objekt vergeben. Z.B. kann er anderen erlauben den Inhalt eines Views anzuzeigen. Gibt mir ein Benutzer das Recht seine Tabelle zu lesen, so kann ich die Tabelle betrachten, ich kann das Recht jedoch nicht einem anderen Benutzer weitergeben. Dazu müsste mir der Benutzer zusätzlich eine Berechtigung erteilen!
Ausdruck BerechtigungTyp SpaltenAusdruck
Beispiele:
GRANT ALL PRIVILIGES ON meineTabelle TO Alex
Der Benutzer Alex bekommt alle Rechte für das Objekt (Tabelle, View)
meineTabelle. Er kann Zeilen löschen, einfügen, ändern,
die Struktur des Objektes ändern...
PHP Syntax
PERL Syntax
Beachte: Der Benutzer kann diese Rechte nicht an dritte weitergeben. Die Berechtigung Rechte an dritte weiter zu geben muss zusätzlich mit der Klausel WITH GRANT OPTION erteilt werden.
GRANT ALTER ON meineTabelle TO Alex
Der Benutzer Alex darf die Struktur des Objektes (Tabelle, View) meineTabelle
verändern.
PHP Syntax
PERL Syntax
Beachte: Der Benutzer kann dieses Rechte nicht an dritte weitergeben. Die Berechtigung, Rechte an dritte weiter zu geben, muss zusätzlich mit der Klausel WITH GRANT OPTION erteilt werden.
GRANT DELETE ON meineTabelle TO Alex
Der Benutzer Alex darf Zeilen des Objektes (Tabelle, Views) meineTabelle
löschen.
PHP Syntax
PERL Syntax
Beachte: Der Benutzer kann dieses Rechte nicht an dritte weitergeben. Die Berechtigung, Rechte an dritte weiter zu geben, muss zusätzlich mit der Klausel WITH GRANT OPTION erteilt werden.
GRANT INDEX ON meineTabelle TO Alex
Der Benutzer Alex darf
Indexe
im Objekt (Tabelle, View) meineTabelle
erstellen.
PHP Syntax
PERL Syntax
Beachte: Der Benutzer kann dieses Rechte nicht an dritte weitergeben. Die Berechtigung, Rechte an dritte weiter zu geben, muss zusätzlich mit der Klausel WITH GRANT OPTION erteilt werden.
GRANT INSERT ON meineTabelle TO Alex
Der Benutzer Alex darf Zeilen im Objekt (Tabelle, View) meineTabelle
einfügen.
Beachte: Der Benutzer kann dieses Rechte nicht an dritte weitergeben. Die Berechtigung, Rechte an dritte weiter zu geben, muss zusätzlich mit der Klausel WITH GRANT OPTION erteilt werden.
GRANT INSERT (SpaltenName1, SpaltenName2) ON meineTabelle TO Alex
Folgt hinter INSERT eine SpaltenListe, so können nur Werte in Spalten eingefügt
werden, die in der SpaltenListe vorkommen. Besitzt eine Spalte die Option
NOT NULL und kommt in der SpaltenListe
nicht vor, kann
keine Zeile eingefügt werden, da keine der beiden Bedingungen gleichzeitig erfüllt
werden kann. Einige RDBMS unterstützen in diesem Zusammenhang die SpaltenListe
nicht. Es gibt wenige Anwendungen, bei der hier eine SpaltenListe Sinn macht.
PHP Syntax
PERL Syntax
GRANT SELECT ON meineTabelle TO Alex
Der Benutzer Alex darf Zeilen im Objekt (Tabelle, View) meineTabelle
lesen.
Beachte: Der Benutzer kann dieses Rechte nicht an dritte weitergeben. Die Berechtigung, Rechte an dritte weiter zu geben, muss zusätzlich mit der Klausel WITH GRANT OPTION erteilt werden.
GRANT SELECT (SpaltenName1, SpaltenName2) ON meineTabelle TO Alex
Folgt hinter SELECT eine SpaltenListe, so können nur Werte in Spalten gelesen
werden, die in der SpaltenListe vorkommen.
PHP Syntax
PERL Syntax
GRANT UPDATE ON meineTabelle TO Alex
Der Benutzer Alex darf Zeilen im Objekt (Tabelle, View) meineTabelle
ändern.
Beachte: Der Benutzer kann dieses Rechte nicht an dritte weitergeben. Die Berechtigung, Rechte an dritte weiter zu geben, muss zusätzlich mit der Klausel WITH GRANT OPTION erteilt werden.
GRANT UPDATE (SpaltenName1, SpaltenName2) ON meineTabelle TO Alex
Folgt hinter UPDATE eine SpaltenListe, so können nur Werte in Spalten geändert
werden, die in der SpaltenListe vorkommen.
PHP Syntax
PERL Syntax
GRANT REFERENCES ON meineTabelle TO Alex
Der Benutzer Alex darf referenzielle Abhängigkeiten zum Objekt (Tabelle, View)
meineTabelle
bilden.
Beachte: Der Benutzer kann dieses Rechte nicht an dritte weitergeben. Die Berechtigung, Rechte an dritte weiter zu geben, muss zusätzlich mit der Klausel WITH GRANT OPTION erteilt werden.
GRANT REFERENCES (SpaltenName1) ON meineTabelle TO Alex
Folgt hinter REFERENCES eine SpaltenListe, so können nur referenzielle Abhängikeiten
zu dieser Spalten bebildet werden.
PHP Syntax
PERL Syntax
GRANT SELECT ON fremdeTabelle TO Alex WITH GRANT OPION
Gibt mir ein Benutzer das Recht, seine Tabelle zu lesen, kann ich diese Recht nicht an dritte
weiter geben. Damit dies Möglich ist, muss er die WITH GRANT OPION
Klausel verwenden. In unserem Beispiel kann der Benutzer Alex anderen Benutzern
das Recht erteilen, die Tabelle fremdeTabelle zu lesen.
PHP Syntax
PERL Syntax
|
||||||||||||||||||||||||||||||||||||||||||||||||