122 lines
4.3 KiB
Plaintext
122 lines
4.3 KiB
Plaintext
PERMIT(QL) DABA16 PERMIT(QL)
|
||
|
||
NAME
|
||
permit - Zufuegen von Befugnissen zu einer Relation
|
||
|
||
UEBERSICHT
|
||
define permit oplist on tuple_variable [ (attlist) ]
|
||
|
||
to name [ at term ] [ from time to time ]
|
||
|
||
[ on day to day ] [ where qual ]
|
||
|
||
BESCHREIBUNG
|
||
Permit erweitert die aktuellen Befugnisse einer Relation,
|
||
die durch tuple_variable repraesentiert wird. Permit kann
|
||
nur durch den Datenbankadministrator(DBA) angewendet werden.
|
||
|
||
Oplist ist eine durch Kommas separierte Liste der auf die
|
||
Relation zugelassenen Operationen (operationelle Befugnisse)
|
||
wie retrieve, replace, delete, append oder all, wobei all
|
||
bedeuted, dass alle Befugnisse erteilt werden.
|
||
|
||
|
||
|
||
|
||
Name ist der Login-Name des Nutzers oder das Wort all.
|
||
|
||
Term ist ein Terminal-Name der Form `tty[4mx[0m' oder das
|
||
Schluesselwort all . Das Auslassen der Term-Phrase ist
|
||
gleichbedeutend mit all.
|
||
|
||
Die Time Phrase muss das Format "hh:mm" (Stunden:Minuten; 24
|
||
Stunden Uhrzeit) besitzen und begrenzt die Tageszeit, wa-
|
||
ehrend der eine Nutzung erlaubt wird.
|
||
|
||
Day ist ein Wochentag der Form 0 = Sonntag bis 6 = Sonn-
|
||
abend.
|
||
|
||
|
||
Die Qualifikation qual wird an die vom Terminal-Nutzer zum
|
||
Anfragenzeitpunkt spezifizierte aktuelle Qualifikation einer
|
||
Anfrage angefuegt (Logische "Und"-Verknuepfung).
|
||
|
||
Separate Teile einer einzelnen permit Anweisung werden mit-
|
||
einander durch "and" (Logisches "Und" oder Konjunktion) ver-
|
||
knuepft. Verschiedene permit Anweisungen werden als dis-
|
||
junkte (Logisches "Oder") Anweisungen betrachtet.
|
||
|
||
|
||
|
||
Wenn beispielsweise
|
||
|
||
. . . to peter at tty4 . . .
|
||
|
||
spezifiziert wurde, gilt die permit Anweisung nur fuer den
|
||
Nutzer "peter", wenn er sich am Terminal "tty4" angemeldet
|
||
hat.
|
||
|
||
Wenn zwei permit Anweisungen der Form
|
||
|
||
. . . to peter at all . . .
|
||
. . . to all at tty4 . . .
|
||
|
||
spezifiziert wurden, wird "peter", falls er sich am Terminal
|
||
"tty4" angemeldet hat, die Vereinigung der Befugnisse beider
|
||
permit Anweisungen besitzen. Wenn sich "peter" aber z.B. am
|
||
Terminal "tty5" angemeldet hat, besitzt er nur die Befugnis-
|
||
se der ersten permit Anweisung.
|
||
|
||
Wenn sich der Nutzer "lehmann" am terminal "tty4" anmeldet,
|
||
hat er nur die Befugnisse der zweiten permit Anweisung.
|
||
|
||
|
||
|
||
|
||
Permit darf nur vom DBA angewendet werden.
|
||
|
||
Gibt ein Nutzer, der nicht DBA ist, eine permit Anweisung
|
||
ein, ist sie bedeutungslos, da sie niemals benutzt wird.
|
||
|
||
Permit Anweisungen werden nicht auf den DBA (Eigentuemer al-
|
||
ler mehrnutzerfaehigen Relationen) oder auf Sichten (views)
|
||
angewendet.
|
||
|
||
Die Anweisungen
|
||
|
||
define permit all on x to all
|
||
define permit retrieve of x to all
|
||
|
||
ohne eine weitere Qualifikation werden als Spezialfaelle be-
|
||
handelt und sind daher besonders effizient.
|
||
|
||
Define erstellt Eintraege fuer Sichten, Befugnisse und In-
|
||
tegritaetsbedingungen nur, wenn die Anfragemodifikations-
|
||
Unterstuetzung (QRYMOD, Query modification) eingeschaltet
|
||
wurde (Sollte sie stets!).
|
||
|
||
In AMX-Programmen koennen nur Relationen verarbeitet werden,
|
||
die ausschliesslich operationelle Befugnisse (append, dele-
|
||
te, replace, retrieve oder all), ohne Qualifikationen, be-
|
||
sitzen.
|
||
|
||
|
||
BEISPIEL[E]
|
||
range of p is personal
|
||
define permit retrieve of p (name, gehalt) to lehmann
|
||
at ttyd from 8:00 to 17:00
|
||
on 1 to 5
|
||
where p.leiter = "lehmann"
|
||
|
||
range of t is teile
|
||
define permit retrieve of t to all
|
||
|
||
SIEHE AUCH
|
||
destroy(ql)
|
||
|
||
|
||
FEHLERQUELLEN
|
||
Es ist darauf zu achten, dass die Relationen, die in qual
|
||
(Qualifikation) eingegangen sind, nicht geloescht werden,
|
||
solange das Zugriffsrecht besteht.
|