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 `ttyx' 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.