Home - SQL Befehle - Benutzerverwaltung www.sqldocu.com
zurück vor



An Benutzer Rechte vergeben


Beschreibung
top
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!


Syntax
top

  Ausdruck
  BerechtigungTyp
  SpaltenAusdruck
| ... trennt Syntaxmöglichkeiten (entweder oder)
[] ... Syntax innerhalb dieser Klammern ist optional
optional ... Syntax in dieser Zeile ist optional
Beispiele:
GRANT ALL PRIVILEGES ON Tabelle1 TO Benutzer1
GRANT DELETE ON Tabelle1 TO Benutzer1
GRANT DELETE, SELECT ON Tabelle1 TO Benutzer1 WITH GRANT OPTION
GRANT SELECT (Spalte1, Spalte4) ON Tabelle1 TO Benutzer1
GRANT SELECT (Spalte1, Spalte4), UPDATE (Spalte7) ON Tabelle1 TO Benutzer1, Benutzer3 WITH GRANT OPTION

Benutzer erhält alle Rechte eines Objektes
top
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...
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.

PHP Syntax     PERL Syntax


Benutzer darf Struktur des Objektes verändern
top
GRANT ALTER
ON meineTabelle
TO Alex

Der Benutzer Alex darf die Struktur des Objektes (Tabelle, View) meineTabelle verä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.

PHP Syntax     PERL Syntax


Benutzer darf Zeilen löschen
top
GRANT DELETE
ON meineTabelle
TO Alex

Der Benutzer Alex darf Zeilen des Objektes (Tabelle, Views) meineTabelle löschen.
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.

PHP Syntax     PERL Syntax


Benutzer darf Index erstellen
top
GRANT INDEX
ON meineTabelle
TO Alex

Der Benutzer Alex darf Indexe im Objekt (Tabelle, View) meineTabelle erstellen.
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.

PHP Syntax     PERL Syntax


Benutzer darf Zeilen einfügen
top
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


Benutzer darf Zeilen lesen
top
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


Benutzer darf Zeilen ändern
top
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


Benutzer darf auf Tabelle referenzieren
top
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


Benutzer darf Rechte weitergeben
top
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


top