JV-Merkmale ändern
Komponente: | JV |
Funktionsbereich: | Jobvariablen |
Anwendungsbereich: | JOB-VARIABLES |
Privilegierung: | STD-PROCESSING |
Berechtigungsschlüssel: | $ (bei NBCONOPI=N) bzw. J (bei NBCONOPI=Y) |
Funktionsbeschreibung
Das Kommando MODIFY-JV-ATTRIBUTES ändert den Katalogeintrag einer JV. Der Benutzer kann den Namen der JV (NEW-NAME) und die Schutzmerkmale einer permanenten JV ändern:
Lese/Schreibzugriff auf die JV (Operand ACCESS); ist Bestandteil der Standard-Zugriffskontrolle
Zugriff fremder Benutzerkennungen (Operand USER-ACCESS); ist Bestandteil der Standard-Zugriffskontrolle
Zugriffsrechte, die mit dem Schutzmerkmal BASIC-ACL vergeben werden; erweiterte Zugriffskontrolle
Schutz durch GUARDS (Operand GUARDS)
Kennwörter der JV (Operand WRITE-PASSWORD/READ-PASSWORD)
Schutzfrist der JV
Sperre einer überwachenden JV aufheben
HSMS-Management-Klasse
Der Katalogeintrag einer JV, die einen laufenden Auftrag überwacht, kann nur geändert werden, wenn die Sperre aufgehoben wird. Der Katalogeintrag einer JV, die in Kommandos und Makros der bedingungsabhängigen Auftragssteuerung verwendet wird, kann ebenfalls nicht geändert werden (Information mit dem Kommando SHOW-CJC-STATUS).
Privilegierte Funktionen
Die Systembetreuung (Privileg TSOS) ist standardmäßig Mit-Eigentümer aller Jobvariablenen (kann somit also auch deren Katalogeinträge modifizieren). Diese Mit-Eigentümerschaft kann für permanente Jobvariablen bei Einsatz von SECOS eingeschränkt werden.
Format
MODIFY-JV-ATTRIBUTES | Kurzname: MDJVA | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Operandenbeschreibung
JV-NAME = <filename 1..54 without-gen-vers>
Bestehender Name der JV.
Der nicht privilegierte Benutzer darf nur die eigene Benutzerkennung angeben.
NEW-NAME = *SAME / <filename 1..54 without-gen-vers>
Neuer Name für die JV. Voreingestellt ist *SAME, d.h. der JV-Name bleibt unverändert. Ein neuer Name kann explizit mit Katalog- und Benutzerkennung angegeben werden, aber eine Änderung der bisherigen Katalog- bzw. Benutzerkennung wird mit Fehler abgewiesen.Beim Umbenennen einer permanenten JV in eine temporäre müssen die Schutzmerkmale die Standardeinstellungen (siehe Kommando CREATE-JV) besitzen oder explizit im Operanden PROTECTION auf Standardeinstellung gesetzt werden. Standardeinstellung der Schutzmerkmale: ACCESS=*WRITE, USER-ACCESS=*OWNER-ONLY, BASIC-ACL= *NONE, WRITE-PASSWORD=*NONE, READ-PASSWORD=*NONE, RETENTION-PERIOD=0
PROTECTION =
Schutzmerkmale der JV.
PROTECTION = *UNCHANGED
Die Schutzmerkmale bleiben unverändert.
Für temporäre JVs ist eine Änderung der Schutzmerkmale nicht zulässig.
PROTECTION = *PARAMETERS(...)
Gibt an, welche Schutzmerkmale geändert werden sollen.
Für alle Schutzmerkmale ist *UNCHANGED voreingestellt: Die Änderung eines Schutzmerkmals erfolgt nur bei expliziter Angabe des gewünschten Wertes.
Für temporäre JVs können nur die voreingestellten Standardwerte vereinbart werden. Ein Schutz ist nicht sinnvoll, da nur der erzeugende Auftrag Zugriff besitzt.
Für Zugriffe auf die JVs gilt der höchste aktivierte Zugriffsschutz. Die nachfolgendeTabelle 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 | 2 |
Alle weiteren Schutzmerkmale der Datei (z.B. Kennwörter) werden unabhängig von der realisierten Schutzstufe ausgewertet.
ACCESS = *UNCHANGED / *WRITE / *READ
Schreibzugriff (mit implizitem Lesezugriff) oder nur Lesezugriff auf die JV.
USER-ACCESS = *UNCHANGED / *OWNER-ONLY / *ALL-USERS
Gibt an, ob fremde Benutzerkennungen auf die JV zugreifen dürfen.
BASIC-ACL = *UNCHANGED / *NONE / *PREVIOUS / *PARAMETERS(...)
Gibt an, ob für die JV eine BASIC-ACL aktiviert, geändert oder ausgeschaltet werden soll.
BASIC-ACL = *NONE
Für die JV wird eine aktivierte BASIC-ACL ausgeschaltet. Die Zugriffskontrolle erfolgt damit entsprechend der Werte von USER-ACCESS und ACCESS (Standard-Zugriffskontrolle).
BASIC-ACL = *PREVIOUS
Ein bereits existierender BASIC-ACL-Eintrag wird nicht verändert.
Ist die JV nicht mit einer BASIC-ACL geschützt, so wird ein BASIC-ACL-Eintrag erzeugt. Dabei werden die Werte der Standard-Zugriffskontrolle (ACCESS und USER-ACCESS) gemäß folgender Tabelle in den BASIC-ACL-Eintrag übernommen:
Standard-Zugriffskontrolle | BASIC-ACL-Schutz | ||||||
---|---|---|---|---|---|---|---|
USER-ACCESS | ACCESS | OWNER | GROUP | OTHERS | |||
R | W | R | W | R | W | ||
OWNER-ONLY | WRITE | Y | Y | N | N | N | N |
OWNER-ONLY | READ | Y | N | N | N | N | N |
ALL-USERS | WRITE | Y | Y | Y | Y | Y | Y |
ALL-USERS | READ | Y | N | Y | N | Y | N |
BASIC-ACL = *PARAMETERS(...)
Für die JV wird BASIC-ACL aktiviert bzw. einzelne Zugriffsrechte einer bestehenden BASIC-ACL geändert.
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 die 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.
BASIC-ACL wird aktiviert, wenn für mindestens eine Benutzerklasse der Wert *NO-ACCESS bzw. *PARAMETERS angegeben wird. In diesem Fall wird für Benutzerklassen, bei denen der Wert *UNCHANGED nicht verändert wurde, die entsprechende Zugriffsberechtigung auf „kein Zugriffsrecht“ gesetzt (entspricht der Angabe *NO-ACCESS).
OWNER = *UNCHANGED / *NO-ACCESS / *PARAMETERS(...)
Gibt an, welche Zugriffsrechte für den Eigentümer zu setzen sind. Bei Aktivierung einer BASIC-ACL wird *UNCHANGED wie *NO-ACCESS behandelt.
Bei *NO-ACCESS besitzt der Eigentümer keine Zugriffsrechte.
OWNER = *PARAMETERS(...)
Die Zugriffsrechte des Eigentümers werden wie angegeben eingetragen:
READ = *UNCHANGED / *NO / *YES
Gibt an, ob die Leseberechtigung gesetzt wird.
Bei Aktivierung einer BASIC-ACL wird *UNCHANGED wie *NO behandelt.
WRITE = *UNCHANGED / *NO / *YES
Gibt an, ob die Schreibberechtigung gesetzt wird.
Die Schreibberechtigung enthält nicht implizit die Leseberechtigung.
Bei Aktivierung einer BASIC-ACL wird *UNCHANGED wie *NO behandelt.
GROUP = *UNCHANGED / *NO-ACCESS / *PARAMETERS(...)
Gibt an, welche Zugriffsrechte für alle Benutzerkennungen aus der Gruppe des Eigentümers zu setzen sind. Ohne SECOS sind das alle Benutzerkennungen, die nicht zu einer anderen Gruppe als der des Eigentümers gehören.
Bei Aktivierung einer BASIC-ACL wird *UNCHANGED wie *NO-ACCESS behandelt. Bei *NO-ACCESS besitzt GROUP keine Zugriffsrechte.
GROUP = *PARAMETERS(...)
Die Zugriffsrechte sind wie angegeben zu setzen:
READ = *UNCHANGED / *NO / *YES
Gibt an, ob die Leseberechtigung gesetzt wird.
Bei Aktivierung einer BASIC-ACL wird *UNCHANGED wie *NO behandelt.
WRITE = *UNCHANGED / *NO / *YES
Gibt an, ob die Schreibberechtigung gesetzt wird.
Die Schreibberechtigung enthält nicht implizit die Leseberechtigung.
Bei Aktivierung einer BASIC-ACL wird *UNCHANGED wie *NO behandelt.
OTHERS = *UNCHANGED / *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.Bei Aktivierung einer BASIC-ACL wird *UNCHANGED wie *NO-ACCESS behandelt. Bei *NO-ACCESS besitzt OTHERS keine Zugriffsrechte.
OTHERS = *PARAMETERS(...)
Die Zugriffsrechte werden wie angegeben gesetzt:
READ = *UNCHANGED / *NO / *YES
Gibt an, ob die Leseberechtigung gesetzt wird.
Bei Aktivierung einer BASIC-ACL wird *UNCHANGED wie *NO behandelt.
WRITE = *UNCHANGED / *NO / *YES
Gibt an, ob die Schreibberechtigung gesetzt wird.
Die Schreibberechtigung enthält nicht implizit die Leseberechtigung.
Bei Aktivierung einer BASIC-ACL wird *UNCHANGED wie *NO behandelt.
GUARDS = *UNCHANGED / *NONE / *PARAMETERS(...)
Gibt an, ob die Zugriffskontrolle für die JV über GUARDS aktiviert oder geändert werden soll.
GUARDS = *NONE
Die Zugriffskontrolle erfolgt nicht (mehr) über GUARDS.
GUARDS = *PARAMETERS(...)
Ein bereits bestehender GUARDS-Schutz wird gemäß der Angaben geändert. War die JV noch nicht mit GUARDS geschützt, so wird die Zugriffskontrolle über GUARDS nur aktiviert, wenn bei mindestens einem der Operanden READ oder WRITE ein Operandenwert ungleich *UNCHANGED angegeben ist.
Der Zugriff auf die Datei 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 = *UNCHANGED / *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 = *UNCHANGED / *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.
WRITE-PASSWORD = *UNCHANGED / *NONE / <c-string 1..4> / <x-string 1..8> /
<integer -2147483648..2147483647> / *SECRET
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 = *NONE
Kein Schreibkennwort für die JV. Ein ggf. definiertes Schreibkennwort wird aufgehoben.
READ-PASSWORD = *UNCHANGED / *NONE / <c-string 1..4> / <x-string 1..8> /
<integer -2147483648..2147483647> / *SECRET
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 = *NONE
Kein Lesekennwort für die JV. Ein ggf. definiertes Lesekennwort wird aufgehoben.
RETENTION-PERIOD = *UNCHANGED / <integer 0..32767 days >
Zeitangabe in Tagen. Im Katalogeintrag wird das Datum im Ausgabefeld EXPIR-DATE auf einen Wert gesetzt, der sich aus dem aktuellen Tagesdatum und der angegebenen Anzahl von Tagen errechnet. Die JV ist bis zu diesem Datum gegen Änderung und Löschen geschützt. Der Zeitpunkt zu dem vereinbarten Freigabedatum wird derzeit mit 00:00:00 Uhr im Katalog eingetragen.
Die Angabe RETENTION-PERIOD=0 bewirkt, dass das Freigabedatum auf das aktuelle Tagesdatum gesetzt und eine gesetzte Schutzfrist damit aufgehoben wird.
MONJV-PROTECTION = *UNCHANGED / *NO
Gibt an, ob die Sperre der angegebenen überwachenden JV beibehalten werden soll. Überwachende Jobvariablen werden vom System automatisch gegen Schreibzugriffe gesperrt, bis der überwachte Auftrag beendet ist.
MONJV-PROTECTION = *NO
Eine ggf. vorhandene Sperre ist aufzuheben. Der Benutzer sollte sicherstellen, dass der überwachte Auftrag bereits aus der Auftragswarteschlange entfernt ist (SHOW-JOB-STATUS).
MANAGEMENT-CLASS = *UNCHANGED / *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, Band 1“ [18].
Die Zuweisung einer Management-Klasse wird in folgenden Fällen abgewiesen:
Die JV ist auf einem SF-Pubset abgelegt.
Die angegebene Management-Klasse ist für den SM-Pubset nicht definiert.
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
---|---|---|---|
0 | CMD0001 | Kommando ausgeführt | |
1 | 0 | CMD0001 | Es war keine Aktion notwendig |
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 |
Beispiel
/create-jv jv=test
/show-jv-attr jv=test,inf=*all-attr
%0000000 :LEO:$USER1.TEST % USER-ACC = OWNER-ONLY ACCESS = WRITE % CRE-DATE = 2012-01-09 EXPIR-DATE = 2012-01-09 % CRE-TIME = 16:09:36 EXPIR-TIME = 00:00:00 % READ-PASS = NONE % WRITE-PASS = NONE %SUM 000001 JV'S; JV-VALUE = 00000000 BYTES
/mod-jv-attr jv=test,new-name=probe ——————————————————————————————————— (1)
/mod-jv-attr jv=probe,prot=(user-access=*all-users,write-pass=c'fehl',
ret-per=10) —————————————————————————————————————————————— (2)
/show-jv-attr jv=probe,inf=*all-attr
%0000000 :LEO:$USER1.PROBE % USER-ACC = ALL-USERS ACCESS = WRITE % CRE-DATE = 2012-01-09 EXPIR-DATE = 2012-01-19 % CRE-TIME = 16:09:36 EXPIR-TIME = 00:00:00 % READ-PASS = NONE % WRITE-PASS = YES %SUM 000001 JV'S; JV-VALUE = 00000000 BYTES
/add-pass pass=c'fehl' ————————————————————————————————————————————————— (3)
/del-jv jv=probe ——————————————————————————————————————————————————————— (4)
% JVS04A3 ERROR WHEN DELETING JOB VARIABLE ':LEO:$USER1.PROBE' % JVS04B6 EXPIRATION DATE FOR JOB VARIABLE NOT YET REACHED. COMMAND REJECTED /
(1) | Die Jobvariable TEST wird in PROBE umbenannt. |
(2) | Die Jobvariable PROBE wird für allgemein benutzbar erklärt und erhält ein Schreibkennwort. Im Zeitraum von 10 Tagen kann sie auch nicht geändert oder gelöscht werden. |
(3) | Das Schreibkennwort wird in die Kennwort-Tabelle eingetragen. |
(4) | Wegen der Schutzzeit von 10 Tagen wird das DELETE-JV-Kommando abgewiesen. |