P8000/WEGA/contrib/ingres/dbs/sys/man/permit

4.3 KiB

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.