Datenbanken Online Lexikon TH Köln, Campus Gummersbach
Aktuelle Änderungen - Suchen:

GRANT

Mit dieser Anweisung k�nnen differenziert auf einzelnen Objekten der Datenbank, wie Tabellen, Benutzerrechte vergeben werden. Diese hier beschriebenen Rechte hei�en auch Objektprivilegien.

Syntax der GRANT-Anweisung:

  <GRANT-Anweisung> ::= 
         GRANT <Privileg> ON [<Datenbankobjekt>]
                          TO <Person> [WITH GRANT OPTION] 
                             [, <Person> [WITH GRANT OPTION]]...;

         <Person>   ::= {  PUBLIC | <Benutzername> } 
         <Privileg> ::= {  ALL    | SELECT | DELETE | INSERT
                         | UPDATE [ Spaltenname [, Spaltenname ]... ] }

<Privileg> gibt das Recht an, welches verliehen werden soll (also das t im Quintupel). Hier unterscheiden sich die unterschiedlichen DBMS in ihren Implementierungen. In Oracle stehen folgende Objekt-Privilegien zur Verf�gung:

  • Select (Select � Statement ausf�hren)
  • Insert (Insert � Statement ausf�hren)
  • Update (Update �Statement ausf�hren)
  • Delete (Delete�Statement ausf�hren)

Neben diesen Objektprivilegien gibt es unter Oracle noch Systemprivilegien, wie z.B. 'GRANT CREATE ANY TABLE', die hier nicht weiter dargestellt sind. Ein Systemprivileg gibt dem Datenbankbenutzer das Recht, bestimmmte Aktionen in der Datenbank auszuf�hren, wie z.B. eine Tabelle anzulegen oder sich mit der Dstenbank zu verbinden. Ein Objektprivileg dagegen gibt dem Benutzer das Recht, bestimmmte Aktionen auf Datenbankobjekten, wie z.B. das �ndern von Daten in einer Datenbanktabelle, auszuf�hren.

<datenbankobjekt> ist der Name des Datenbankenobjektes, f�r welches das neue Recht gelten soll (entspricht o im [[DAC |Quintupel]. Ein Datenbankobjekt kann eine Tabelle oder eine View sein. Es ist immer nur m�glich, innerhalb eines GRANT-Befehls, auf ein Datenbankobjekt, nicht auf mehrere, Rechte zu vergeben.

PUBLIC | <Benutzername> : An dieser Stelle m�ssen alle Subjekte eingetragen werden, an die das Recht verliehen werden soll (entspricht dem s im Quintupel). Es k�nnen hier sowohl Benutzernamen als auch Gruppennamen genutzt werden. Das Schl�sselwort �PUBLIC� gibt an, dass dieses Recht f�r alle Subjekte gilt.

WITH GRANT OPTION: Wenn ein Recht �WITH GRANT OPTION� generiert wird, bedeutet es, dass alle Subjekte, welches dieses Recht inne haben, dieses an andere Subjekte weitergeben d�rfen (dies entspricht dem f im Quintupel).

Das Zugriffsfenster p kann durch den GRANT-Befehl nicht dargestellt werden. Dieses wird im Normalfall �ber Gruppenrichtlinien umgesetzt.

Unter Oracle-SQL k�nnen auch Rechte auf Verzeichnissen einger�umt werden, die zuvor mit CREATE-DIRECTORY? angelegt wurden. Lesender /Schreibender Zugriff wird durch ein GRANT READ /WRITE ON DIRECTORY TO USER; vergeben.

GRANT#EXECUTE

Unter ORACLE-SQL kann man mit GRANT EXECUTE on <Modulname> to <person>; auch das Recht zur Ausf�hrung eines PL/SQL-Moduls (Prozedur, Funktion) oder eines selbstdefinierten Typs (CREATE-TYPE) vergeben. Dabei werden die Objektprivilegien des Prozedureigent�mers an den Aurufer der Prozedur oder der Funktion weitergegeben.

Beispiel 1

Der Benutzer "STUDENT" f�hrt folgende Datenbankstatements aus:

        CREATE TABLE STUDENT_NAMES
        (
            MAT_NR INT,
            VORNAME VARCHAR(50),
            NACHNAME VARCHAR(50)
        );

        GRANT SELECT ON STUDENT_NAMES TO TEACHER;

Nun ist der Benutzer �TEACHER� mit folgendem SQL Statement in der Lage ein �SELECT� Statement auf die Daten des Benutzers �STUDENT� durchzuf�hren:

        SELECT * FROM STUDENT.STUDENT_NAMES;

Beispiel 2

        GRANT ALL ON Teile TO PUBLIC;
        GRANT SELECT ON Teile TO Hugo;
        GRANT UPDATE (Typ, Bezeichnung) ON Teile TO Fritz; 

Siehe auch: REVOKE

Kategorie: SQL, Sicherheit, G

Quellen:

  • F�r eine ausf�hrliche Darstellung der SQL-Standard-Syntax vgl.: Melton, Jim, Simon, Alan, R.: SQL:1999, Understanding Relational Language Components, Morgan Kaufmann Publishers, San Franncisco, 2002, ISBN 1-55860-456-1
  • F�r SQL-ORACLE: Oracle� Database SQL Language Reference 11g Release 2 (11.2), E10592-04, http://download.oracle.com/docs/cd/E11882_01/server.112/e10592.pdf
  • Kemper/Eickler - Datenbanksysteme - ISBN: 3-486-57690-9