Die Datenbankadministratoren legen die ihnen untergeordneten Benutzer sowie die ihrem Aufgabenbereich zugeordneten Tabellen an. Sie haben weiterhin die Aufgabe, Benutzungsrechte auf ihre Daten an andere weiterzugeben.
Um die Benutzerstruktur zu realisieren, definiert der DBA 'reisen10' die Benutzergruppe 'reisen10gruppe'. Anschließend werden die zu dieser Gruppe gehörigen Benutzer eingerichtet.
CREATE USERGROUP reisen10gruppe RESOURCE CREATE USER reisen11 PASSWORD r11 USERGROUP reisen10gruppe CREATE USER reisen12 PASSWORD r12 USERGROUP reisen10gruppe CREATE USER reisen13 PASSWORD r13 USERGROUP reisen10gruppe
Mit dem Gruppennamen selbst kann man sich nicht bei der Datenbank anmelden, sondern mit dem Namen des Gruppenmitglieds. Objekte wie beispielsweise Tabellen werden jedoch unter dem Gruppennamen abgelegt.
'reisen20' legt Einzelbenutzer ohne Gruppenzugehörigkeit an. 'reisen21' und 'reisen22' können nicht zu einer Gruppe zusammengefaßt werden, da sie unterschiedlich privilegiert sind. 'reisen22' als STANDARD-Benutzer soll nicht das Recht besitzen, eigene Tabellen zu kreieren.
CREATE USER reisen21 PASSWORD r21 RESOURCE CREATE USER reisen22 PASSWORD r22 STANDARD
Dem DBA 'reisen10' wird die Verwaltung der Kundentabelle zugeordnet. Er entscheidet, daß die Mitglieder seiner Benutzergruppe das Recht besitzen sollen, die Kundendaten zu pflegen, jedoch keine Änderungen an der Struktur der Tabelle vornehmen können sollen.
GRANT SELECT, UPDATE, DELETE, INSERT ON kunde TO reisen10gruppe
Alle im System befindlichen Nutzer sollen jedoch die Möglichkeit besitzen, lesend auf die Daten zuzugreifen. Die Privilegienvergabe braucht nicht für jeden Benutzer einzeln zu erfolgen, sondern kann mit Hilfe des Schlüsselwortes PUBLIC erreicht werden.
GRANT SELECT ON kunde TO PUBLIC
'reisen20' ist für die Tabellen 'hotel', 'raum' und 'buchung' zuständig. Er räumt seinen Benutzern 'reisen21' und 'reisen22' unterschiedliche Rechte für seine Tabellen ein.
GRANT SELECT, UPDATE, DELETE, INSERT ON hotel, raum, buchung TO reisen21 GRANT SELECT, UPDATE ON hotel TO reisen22
Der Benutzergruppe sollen ebenfalls Möglichkeiten zur Bearbeitung der drei Tabellen gegeben werden. 'reisen20' möchte die Vergabe von Rechten jedoch lieber dem DBA überlassen, zu dem die Gruppe gehört. Er versetzt also 'reisen10' in die Lage, sowohl mit seinen Tabellen arbeiten zu können als auch Privilegien dafür zu verleihen. Dies wird dem System durch den Zusatz WITH GRANT OPTION bekannt gemacht.
GRANT ALL ON hotel, buchung, kunde TO reisen10 WITH GRANT OPTION'reisen10' hat alle Rechte für die drei Tabellen erhalten und gibt einen Teil davon an die Benutzergruppe weiter. Da es sich nicht um seine eigenen Tabellen handelt, muß der Name vollständig mit dem Besitzer angegeben werden.
GRANT SELECT, UPDATE, DELETE, INSERT ON reisen20.hotel TO reisen10gruppe GRANT SELECT ON reisen20.buchung TO reisen10gruppe