Neue Jobvariable erzeugen
Komponente: | JV |
Funktionsbereich: | Jobvariablen |
Anwendungsbereich: | JOB-VARIABLES |
Privilegierung: | STD-PROCESSING HARDWARE-MAINTENANCE |
Berechtigungsschlüssel: | $ (bei NBCONOPI=N) bzw. J (bei NBCONOPI=Y) |
Funktionsbeschreibung
Das Kommando CREATE-JV erstellt den Katalogeintrag für eine Jobvariable (JV), deren Wert bis zur ersten Änderung undefiniert ist. Der Benutzer vereinbart den Namen der JV und folgende Schutzmerkmale:
Lese- oder Lese- u. Schreibzugriff (Operand ACCESS); Bestandteil der Standard-Zugriffskontrolle
Zugriff fremder Benutzerkennungen (Operand USER-ACCESS); Bestandteil der Standard-Zugriffskontrolle
explizite Vergabe von Zugriffsrechten (Operand BASIC-ACL); erweiterte Zugriffskontrolle
Schutz durch GUARDS (Operand GUARDS)
zusätzlicher Schutz mit Kennwörtern (Operanden READ- und WRITE-PASSWORD)
HSMS-Management-Klasse (Operand MANAGEMENT-CLASS)
Das Schutzmerkmal „Schutzfrist“ wird implizit gesetzt. Sie kann nur über das Kommando MODIFY-JV-ATTRIBUTES vergeben werden (Operand RETENTION-PERIOD). Für neu erstellte JVs wird standardmäßig keine Schutzfrist vereinbart, d.h. im Katalogeintrag enthält das Ausgabefeld EXPIR-DATE das Erstellungsdatum (Ausgabefeld CRE-DATE). Das Ausgabefeld EXPIR-TIME wird derzeit immer mit Wert 00:00:00
belegt. Als Erstellungszeitpunkt (Ausgabefeld CRE-TIME) ist der tatsächliche Zeitpunkt der Erstellung eingetragen.
Für temporäre JVs sind nur die voreingestellten Werte zulässig, d.h. sie sind nicht mehrfach benutzbar, immer überschreibbar und können nicht mit Kennwörtern geschützt werden. Die Schutzfunktion BASIC-ACL wird ebenfalls nicht unterstützt. Da auf temporäre JVs nur der erzeugende Auftrag bis zur LOGOFF-Verarbeitung zugreifen kann, ist ein Schutz gegen fremde Zugriffe nicht nötig.
Beim Anlegen von permanenten JVs kann der Benutzer die im Benutzereintrag des jeweiligen Pubsets maximal erlaubte Anzahl von Jobvariablen nicht überschreiten. Ist die Anzahl der permanenten JVs gleich der maximal erlaubten Anzahl, wird ein weiteres CREATE-JV-Kommando zum Erzeugen einer permanenten JV abgewiesen (siehe Ausgabefelder JOBVARIABLES und JV-NUMBER-LIMIT des Kommandos SHOW-USER-ATTRIBUTES).
Privilegierte Funktionen
Die Systembetreuung (Privileg TSOS) ist standardmäßig Mit-Eigentümer aller Jobvariablen (kann somit also auch Jobvariablen unter jeder Benutzerkennung anlegen). Diese Mit-Eigentümerschaft kann für permanente Jobvariablen bei Einsatz von SECOS eingeschränkt werden.
Format
CREATE-JV | Kurzname: CRJV | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Operandenbeschreibung
JV-NAME = <filename 1..54 without-gen-vers>
Name der zu erzeugenden Jobvariable (JV).
Der nicht privilegierte Benutzer kann Jobvariablen nur unter seiner Benutzerkennung einrichten. Der Name einer temporären JV beginnt mit dem im Systemparameter TEMPFILE festgelegten Zeichen (# oder @). Vom System wird immer der interne Name ausgegeben (z.B. Ausgabe des Kommandos SHOW-JV-ATTRIBUTES, Systemmeldungen).
PROTECTION = *STD / *PARAMETERS(...)
Schutzmerkmale der JV.
PROTECTION = *STD
Die aufgeführten Schutzattribute werden mit den von der Default-Protection gelieferten Werten belegt.
Ist Default-Protection nicht aktiv, werden System-Standardwerte für die entsprechenden Operanden der Struktur *PARAMETERS eingesetzt.
Schutzattribut | PROTECTION-ATTR= | ||
---|---|---|---|
*STD | *BY-DEF-PROT-OR-STD | ||
Default-Protection nicht aktiv | Default-Protection aktiv | ||
(System-Standardwerte) | |||
ACCESS | WRITE | von der | |
USER-ACCESS | OWNER-ONLY | ||
BASIC-ACL | NONE | ||
GUARDS | NONE | ||
READ-/WRITE-PASSWORD | NONE |
PROTECTION = *PARAMETERS(...)
Für die JV werden die nachfolgend angegebenen Schutzmerkmale vereinbart. Die Default-Werte *NONE bzw. *NO bedeuten jeweils, dass die entsprechende Schutzfunktion nicht gewünscht wird. Das Schutzmerkmal ACCESS wird implizit auf WRITE gesetzt (explizit nur mit MODIFY-JV-ATTRIBUTES).
Für temporäre JVs sind nur die voreingestellten Werte zulässig. Sie sind nicht mehrfach benutzbar, sind immer überschreibbar und können nicht mit Kennwörtern geschützt werden. Die Schutzfunktionen BASIC-ACL und GUARDS werden ebenfalls nicht unterstützt. Da auf temporäre JVs nur der erzeugende Auftrag bis zur LOGOFF-Verarbeitung zugreifen kann, ist ein Schutz gegen fremde Zugriffe nicht nötig.
Für Zugriffe auf die JV gilt der höchste aktivierte Zugriffsschutz. Die nachfolgende Tabelle zeigt Art der Zugriffskontrolle, Schutzmerkmal und Rangfolge (Schutzstufe):
Zugriffsschutz | Schutzmerkmal | Schutzstufe |
---|---|---|
Standard-Zugriffskontrolle | ACCESS u. USER-ACCESS | 0 |
Einfache Zugriffskontroll-Liste | BASIC-ACL | 1 |
Zugriffskontrolle über Guards | GUARDS mit dem Produkt SECOS | 2 |
Alle weiteren Schutzmerkmale der JV (z.B. Kennwörter) werden unabhängig von der realisierten Schutzstufe ausgewertet.
PROTECTION-ATTR = *BY-DEF-PROT-OR-STD / *STD
Gibt an, woher die Schutzattribute übernommen werden sollen, deren Wert mit *BY-PROTECTION-ATTR angegeben wurde.
Zur Wertevergabe siehe Tabelle "Auswirkungen von PROTECTION-ATTR auf Schutzattribute bei CREATE-JV".
PROTECTION-ATTR = *BY-DEF-PROT-OR-STD
Für Operanden, deren Wert *BY-PROTECTION-ATTR ist, werden die von der Default-Protection gelieferten Werte eingetragen. Ist Default-Protection nicht aktiv, werden die System-Standardwerte eingesetzt.
PROTECTION-ATTR = *STD
Für Operanden, deren Wert *BY-PROTECTION-ATTR ist, werden die System-Standardwerte eingesetzt.
ACCESS = *BY-PROTECTION-ATTR / *WRITE / *READ
Gibt an, welche Art von Zugriffen erlaubt sind, wenn nur die Standard-Zugriffskontrolle aktiviert ist (d.h. kein BASIC-ACL-Eintrag und kein GUARDS-Schutz besteht).
ACCESS = *BY-PROTECTION-ATTR
Die Standard-Zugriffskontrolle erfolgt abhängig vom Wert des Operanden PROTECTION-ATTR.
ACCESS = *WRITE
Die Standard-Zugriffskontrolle lässt Schreib- und Lesezugriffe zu.
ACCESS = *READ
Die Standard-Zugriffskontrolle lässt nur Lesezugriffe zu.
USER-ACCESS = *BY-PROTECTION-ATTR / *OWNER-ONLY / *ALL-USERS
Gibt an, ob die mit dem Operanden ACCESS zugelassenen Zugriffe auch für fremde Benutzerkennungen erlaubt sind, wenn nur die Standard-Zugriffskontrolle aktiviert ist (d.h. kein BASIC-ACL-Eintrag und kein GUARDS-Schutz besteht).
USER-ACCESS = *BY-PROTECTION-ATTR
Der Zugriff erfolgt abhängig vom Wert des Operanden PROTECTION-ATTR.
USER-ACCESS = *OWNER-ONLY
Zugriff hat nur der Eigentümer (Benutzerkennung unter der die JV katalogisiert ist) und die Systembetreuung.
USER-ACCESS = *ALL-USERS
Zugriffsberechtigt sind alle Benutzerkennungen.
BASIC-ACL = *BY-PROTECTION-ATTR / *NONE / STD / *PARAMETERS(...)
Gibt an, ob für die JV ein BASIC-ACL-Eintrag erstellt werden soll und die Zugriffskontrolle damit über diesen Eintrag erfolgt.
BASIC-ACL = *BY-PROTECTION-ATTR
Die Zugriffskontrolle über BASIC-ACL erfolgt abhängig vom Wert des Operanden PROTECTION-ATTR.
BASIC-ACL = *NONE
Für die JV wird BASIC-ACL nicht aktiviert. Die Zugriffskontrolle (Standard-Zugriffskontrolle) erfolgt entsprechend den Schutzmerkmalen USER-ACCESS und ACCESS (siehe Ausgabefelder USER-ACC und ACCESS des Kommandos SHOW-JV-ATTRIBUTES).
BASIC-ACL = *STD
Für die JV wird ein BASIC-ACL-Eintrag mit folgenden Werten erstellt:
OWNER = *PARAMETERS( READ = *YES, WRITE = *YES),
GROUP = *NO-ACCESS und OTHERS = *NO-ACCESS
BASIC-ACL = PARAMETERS(...)
Für die JV wird ein BASIC-ACL-Eintrag erzeugt und die Zugriffskontrolle erfolgt damit über die einfache Zugriffskontroll-Liste (BASIC-ACL).
Die Zugriffsrechte Lesen und Schreiben können für jede Benutzerklasse explizit gesetzt bzw. untersagt werden.
Benutzerklassen sind:
OWNER, d.h. Benutzerkennung des Eigentümers und der Systembetreuung
GROUP, d.h. alle Benutzerkennungen, die der Gruppe des Eigentümers angehören (außer Eigentümer und Systembetreuung). Die Definition von Benutzergruppen ist erst bei Einsatz des Software-Produktes SECOS möglich.
Im Hinblick auf den möglichen Einsatz von SECOS sollten für GROUP die gleichen Rechte wie für OTHERS vergeben werden.OTHERS, d.h. alle Benutzerkennungen, die nicht der Gruppe des Eigentümers angehören.
OWNER = *NO-ACCESS / *PARAMETERS(...)
Gibt an, welche Zugriffrechte für den Eigentümer zu setzen sind. Voreingestellt ist *NO-ACCESS, d.h. der Eigentümer besitzt weder Lese- noch Schreibberechtigung.
OWNER = *PARAMETERS(...)
Die Zugriffsrechte des Eigentümers werden wie angegeben eingetragen:
READ = *NO / *YES
Gibt an, ob die Leseberechtigung gesetzt wird.
WRITE = *NO / *YES
Gibt an, ob die Schreibberechtigung gesetzt wird.
Die Schreibberechtigung enthält nicht implizit die Leseberechtigung.
GROUP = *NO-ACCESS / *PARAMETERS(...)
Gibt an, welche Zugriffsrechte für alle Benutzerkennungen aus der Gruppe des Eigentümers zu setzen sind.
Voreingestellt ist *NO-ACCESS, d.h. die Benutzerklasse GROUP besitzt weder Lese- noch Schreibberechtigung.
GROUP = *PARAMETERS(...)
Die Zugriffsrechte sind wie angegeben zu setzen:
READ = *NO / *YES
Gibt an, ob die Leseberechtigung gesetzt wird.
WRITE = *NO / *YES
Gibt an, ob die Schreibberechtigung gesetzt wird.
Die Schreibberechtigung enthält nicht implizit die Leseberechtigung.
OTHERS = *NO-ACCESS / *PARAMETERS(...)
Gibt an, welche Zugriffsrechte für Benutzerkennungen zu setzen sind, die nicht der Gruppe des Eigentümers angehören. Falls SECOS nicht eingesetzt wird, sollten die Zugriffsrechte im Hinblick auf eine Auswertung bei zukünftigem Einsatz von SECOS wie für GROUP gesetzt werden.
Voreingestellt ist *NO-ACCESS, d.h. die Benutzerklasse OTHERS besitzt weder Lese- noch Schreibberechtigung.
OTHERS = *PARAMETERS(...)
Die Zugriffsrechte werden wie angegeben gesetzt:
READ = *NO / *YES
Gibt an, ob die Leseberechtigung gesetzt wird.
WRITE = *NO / *YES
Gibt an, ob die Schreibberechtigung gesetzt wird.
GUARDS = *BY-PROTECTION-ATTR / *NONE / *PARAMETERS(...)
Gibt an, ob die Zugriffskontrolle für die JV über GUARDS erfolgt.
GUARDS = *BY-PROTECTION-ATTR
Die Zugriffskontrolle über GUARDS erfolgt abhängig vom Wert des Operanden PROTECTION-ATTR.
GUARDS = *NONE
Die Zugriffskontrolle erfolgt nicht über GUARDS.
GUARDS = *PARAMETERS(...)
Die Zugriffskontrolle erfolgt über GUARDS.
Der Zugriff auf die JV wird über einen Guard geregelt, d.h. ein spezielles Objekt, das alle Bedingungen enthält, unter denen ein Benutzer die Zugriffserlaubnis erhält:
z.B. Datum, Uhrzeit, Benutzerkennung. Ein Guard kann nur mit der Funktionseinheit GUARDS des kostenpflichtigen Software-Produkts SECOS erstellt und verwaltet werden (siehe Handbuch „SECOS“ [35]).
Ein Guard wird über den Guard-Namen eindeutig identifiziert. Der Guard-Name ist ähnlich wie ein JV-Name aufgebaut: Er kann eine Benutzerkennung enthalten und besteht aus einem maximal 8 Zeichen langen Namensteil. Bei Angabe ohne Benutzerkennung wird implizit die eigene Benutzerkennung angenommen.
Jede Zugriffsart kann über einen eigenen Guard kontrolliert werden. Ist für eine Zugriffsart kein Guard vereinbart (*NONE), so sind keine entsprechenden Zugriffe erlaubt (z.B. erlaubt WRITE=*NONE keinerlei Schreibzugriffe).
Die Angabe GUARDS=*PARAMETERS vereinbart die Zugriffskontrolle über GUARDS, wobei für alle Zugriffsarten die Voreinstellung *NONE gilt, d.h. die JV kann nicht gelesen, verändert oder ausgeführt werden.
Die Zugriffskontrolle über GUARDS kann unabhängig von der Verfügbarkeit des Subsystems GUARDS vereinbart werden. Eine Überprüfung durch GUARDS findet erst zum Zeitpunkt des JV-Zugriffs statt:
Ist ein vereinbarter Guard nicht zugreifbar, so sind die mit ihm geschützten Zugriffe nicht erlaubt. Ist das Subsystem GUARDS zum Zeitpunkt des Zugriffs nicht verfügbar, so sind keinerlei Zugriffe erlaubt.
READ = *NONE / <filename 1..18 without-cat-gen-vers>
Name eines Guards für den Leseschutz (maximal 8 Zeichen, wenn keine Benutzerkennung angegeben wird).
Voreingestellt ist *NONE, d.h., es sind keine Lesezugriffe erlaubt.
WRITE = *NONE / <filename 1..18 without-cat-gen-vers>
Name eines Guards für den Schreibschutz (maximal 8 Zeichen, wenn keine Benutzerkennung angegeben wird).
Voreingestellt ist *NONE, d.h., es sind keine Schreibzugriffe erlaubt.
READ-PASSWORD = *BY-PROTECTION-ATTR / *NONE / *SECRET / <c-string 1..4> /
<x-string 1..8> / <integer -2147483648..2147483647>
Kennwort zum Schutz vor unberechtigtem Lesen. Der Operand READ-PASSWORD hat folgende Besonderheiten:
Im geführten Dialog ist das Eingabefeld automatisch dunkel-gesteuert.
Bei Angabe von *SECRET oder ^ im ungeführten Dialog und in Vordergrund-Prozeduren stellt SDF ein dunkel-gesteuertes Eingabefeld zur verdeckten Eingabe des Kennworts zur Verfügung.
Das eingegebene Kennwort wird nicht protokolliert.
READ-PASSWORD = *BY-PROTECTION-ATTR
Die Vergabe eines Lesekennworts ist abhängig vom Wert des Operanden PROTECTION-ATTR.
WRITE-PASSWORD = *BY-PROTECTION-ATTR / *NONE / *SECRET / <c-string 1..4> /
<x-string 1..8> / <integer -2147483648..2147483647>
Kennwort zum Schutz vor unberechtigtem Schreiben. Der Operand WRITE-PASSWORD hat folgende Besonderheiten:
Im geführten Dialog ist das Eingabefeld automatisch dunkel-gesteuert.
Bei Angabe von *SECRET oder ^ im ungeführten Dialog und in Vordergrund-Prozeduren stellt SDF ein dunkel-gesteuertes Eingabefeld zur verdeckten Eingabe des Kennworts zur Verfügung.
Das eingegebene Kennwort wird nicht protokolliert.
WRITE-PASSWORD = *BY-PROTECTION-ATTR
Die Vergabe eines Schreibkennworts ist abhängig vom Wert des Operanden PROTECTION-ATTR.
MANAGEMENT-CLASS = *NONE / <composed-name 1..8>
Nur für Jobvariablen auf SM-Pubsets
Gibt an, ob die HSMS-Funktionen JV-Sicherung, Archivierung und Langzeitarchivierung über eine mit HSMS definierte Management-Klasse gesteuert werden. Näheres siehe Handbuch „HSMS“ [18].
Die Zuweisung einer Management-Klasse wird in folgenden Fällen abgewiesen:
Die JV soll auf einem SF-Pubset angelegt werden.
Die angegebene Management-Klasse ist für den SM-Pubset nicht definiert.
SUPPRESS-ERRORS = *NONE / *JV-EXISTING
Gibt an, ob ein Fehler vorliegt, wenn die angegebene JV bereits existiert.
SUPPRESS-ERRORS = *NONE
Existiert die angegebene JV bereits, wird das Kommando mit Fehler abgewiesen. Der Fehler löst den Spin-Off-Mechanismus bzw. die SDF-P-Fehlerbehandlung aus.
SUPPRESS-ERRORS = *JV-EXISTING
Existiert die angegebene JV bereits, hat das Kommando keine Auswirkung auf die JV. Es liegt kein Fehler vor (der Fehler JVS0444 wird unterdrückt).
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
---|---|---|---|
0 | CMD0001 | Kommando ausgeführt | |
2 | 0 | CMD0001 | Kommando ausgeführt mit Warnung |
1 | CMD0202 | Syntaxfehler | |
32 | CMD0221 | Systemfehler | |
64 | JVS04E0 | Kommando in der Aufruf-Umgebung nicht ausführbar; Fehlerursache, wenn möglich beseitigen (siehe SYSOUT-Meldung JVS04xx) | |
130 | JVS04E1 | Kommando kann vorübergehend nicht ausgeführt werden; Ursache siehe SYSOUT-Meldung JVS04xx | |
130 | CMD2282 | Subsystem JV für unbestimmte Zeit nicht verfügbar |
Beispiele
/create-jv jv=jv.perm.error,prot=*par(user-access=*all-users,write-pass=c'fehl')
/show-jv-attr jv=jv.perm.error,inf=*all-attr
%0000000 :LEO:$USER1.JV.PERM.ERROR % USER-ACC = ALL-USERS ACCESS = WRITE % CRE-DATE = 2012-03-15 EXPIR-DATE = 2012-03-15 % CRE-TIME = 09:09:00 EXPIR-TIME = 00:00:00 % READ-PASS = NONE % WRITE-PASS = YES %SUM 000001 JV'S; JV-VALUE = 00000000 BYTES
Die Jobvariable PERM.ERROR wird erzeugt, d.h. ihr Name wird im Katalog eingetragen. Die Jobvariable ist als mehrbenutzbar vereinbart und durch ein Schreibkennwort geschützt.
/create-jv jv=jv.perm.error.read,
prot=(basic-acl=(owner=(read=y,write=y),group=(read=y),others=(read=y)))
/show-jv-attr jv=jv.perm.error.read,inf=*all-attr
%0000000 :LEO:$TSOS.JV.PERM.ERROR.READ % USER-ACC = OWNER-ONLY ACCESS = WRITE % OWNER = R W GROUP = R - OTHERS = R - % CRE-DATE = 2012-01-19 EXPIR-DATE = 2012-01-19 % CRE-TIME = 18:18:29 EXPIR-TIME = 00:00:00 % READ-PASS = NONE % WRITE-PASS = NONE %SUM 000001 JV'S; JV-VALUE = 00000000 BYTES
Die Jobvariable JV.PERM.ERROR.READ wird erzeugt. Sie ist nicht mehrbenutzbar, aber mit BASIC-ACL wird anderen Benutzern das Leserecht eingeräumt. Der Eigentümer darf lesend und schreibend zugreifen.
/create-jv jv=#jv.temp.work
/show-jv-attr jv=#jv.temp.work,inf=*all-attr
%0000000 :LEO:$TSOS.S.123.4HM7.JV.TEMP.WORK % USER-ACC = OWNER-ONLY ACCESS = WRITE % CRE-DATE = 2012-01-19 EXPIR-DATE = 2012-01-19 % CRE-TIME = 18:22:44 EXPIR-TIME = 00:00:00 % READ-PASS = NONE % WRITE-PASS = NONE %SUM 000001 JV'S; JV-VALUE = 00000000 BYTES
Die temporäre Jobvariable #JV.TEMP.WORK wird erzeugt. Die Schutzmerkmale besitzen die Standardeinstellung (abweichende Werte können nicht vereinbart werden). Zugriff hat nur der erzeugende Auftrag.