Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

MODSAC Zugriffsbedingungen hinzufügen oder ändern

Mit diesem Makro werden, je nach Angabe des Operanden ACTION, neue Bedingungsdefinitionen einem Guard hinzugefügt oder bestehende Bedingungsdefinitionen geändert.

Makro

Operanden

MODSAC

MF = D / L / C / M / E

,PREFIX = P / <name 1>

,MACID = ROY / <name 3>

,MGMTPRE = P / <name 1>

,MGMTMAC = ROZ / <name 3>

,PARAM = <name 1..8>

,ACTION *= *ADD / *MODIFY

,DIALOG = *STD / *NO / *GUARD / *USERID / *CATALOG / <var: enum DIALOG> /

(<reg: enum DIALOG>)

,ERRMSG = *NO / *YES

,GUARD * =<c-string: filename 1..40 without-gen-vers with-wild> /

<c-string: partial-filename 2..40 with-wild> / <var: char(40)> / (<reg: A(char(40))>)

,SUBTYPE = *NONE / *USER / *GROUP / *OTHER / *ALLUSER /

<var: enum SUBTYPE> / (<reg: enum SUBTYPE>)

,SUBIDS = array(20): <c-string: name 1..8> / <var: char(8)> / (<reg: A(char(8))>)

,ADMISS = *YES / *NO / *PARAMS / <var: enum ADMISS> / (<reg: enum ADMISS>)

,CKTIME = *NO / *ADMISSION / *EXCLUSION / <var: enum COND_KIND> /

(<reg: enum COND_KIND>)

,TIMEN =<integer 1..4> / <var: integer(1)> / (<reg: A(integer(1))>)

,TIME#1 = structure(2):

(1) low: <c-string: time 5> / <var: char(5)> / (<reg: A(char(5))>)
(2) high: <c-string: time 5> / <var: char(5)> / (<reg: A(char(5))>)

,TIME#2 = siehe TIME#1
,TIME#3 = siehe TIME#1
,TIME#4 = siehe TIME#1

MODSAC

,CKDATE = *NO / *ADMISSION / *EXCLUSION / <var: enum COND_KIND> /

(<reg: enum COND_KIND>)

,DATEN = <integer 1..4> / <var: integer(1)> / (<reg: A(integer(1))>)

,DATE#1 = structure(2):

(1) low: <c-string: date 10> / <var: char(10)> / (<reg: A(char(10))>)
(2) high: <c-string: date 10> / <var: char(10)> / (<reg: A(char(10))>)

,DATE#2 = siehe DATE#1
,DATE#3 = siehe DATE#1
,DATE#4 = siehe DATE#1

,CKWEEK = *NO / *ADMISSION / *EXCLUSION / <var: enum COND_KIND> /

(<reg: enum COND_KIND>)

,MO = *NO / *YES
,TU = *NO / *YES
,WE = *NO / *YES
,TH = *NO / *YES
,FR = *NO / *YES
,SA = *NO / *YES
,SU = *NO / *YES

,CKPRIV = *NO / *ADMISSION / *EXCLUSION / <var: enum COND_KIND> /

(<reg: enum COND_KIND>)

,ACSADM = *NO / *YES
,CUPRV001 = *NO / *YES

,CUPRV002 = *NO / *YES
,CUPRV003 = *NO / *YES
,CUPRV004 = *NO / *YES
,CUPRV005 = *NO / *YES
,CUPRV006 = *NO / *YES
,CUPRV007 = *NO / *YES
,CUPRV008 = *NO / *YES
,FTADM = *NO / *YES
,FTACADM = *NO / *YES
,HWMAINT = *NO / *YES
,HSMSADM = *NO / *YES
,NETADM = *NO / *YES
,NOTIFADM = *NO / *YES

MODSAC

,OPERATG = *NO / *YES
,POSXADM = *NO / *YES
,PRSVADM = *NO / *YES
,PROPADM = *NO / *YES
,SATFEVA = *NO / *YES
,SATFMGM = *NO / *YES
,SECADM = *NO / *YES
,STDPROC = *NO / *YES
,SUBSMGM = *NO / *YES
,SWMONAD = *NO / *YES
,TAPEADM = *NO / *YES
,TAPEKEYADM = *NO / *YES
,TSOS = *NO / *YES
,USERADM = *NO / *YES
,VMPRIV = *NO / *YES
,VM2ADM = *NO / *YES

,CKPROG = *NO / *ADMISSION / *EXCLUSION / <var: enum COND_KIND> /

(<reg: enum COND_KIND>)

,PHASEN = <integer 1..4> / <var: integer(1)> / (<reg: A(integer(1))>)

,PHASE#1 = structure(4):

(1) type: *FILE / *PHASE / *MODULE / <var: enum PROG_TYPE> /

(<reg: enum PROG_TYPE>)

(2) library: <c-string: filename 1..54> / <var: char(54)> / (<reg: A(char(54))>)

(3) element: <c-string: composed-name 1..54> / <var: char(54)> / (<reg: A(char(54))>)

(4) version: *ANY / <c-string: composed-name 1..24> / <var: char(24)> /

(<reg: A(char(24))>)

,PHASE#2 = siehe PHASE#1
,PHASE#3 = siehe PHASE#1
,PHASE#4 = siehe PHASE#1

Die Beschreibung der Parameter MF, PREFIX, MACID, PARAM finden Sie im Handbuch „Makroaufrufe an den Ablaufteil“ [16].

Operanden, die mit „*“ gekennzeichnet sind, sind Pflichtoperanden bei MF=L.

Unterstrichene Operandenwerte sind nur bei ACTION=*ADD die voreingestellten Werte. Für ACTION=*MODIFY werden nur die explizit angegebenen Werte geändert; alle anderen bleiben unverändert.

Die Angaben COND_KIND, PROG_TYPE, DIALOG, SUBTYPE und ADMISSION verweisen auf die DSECT des Makros SACMGMT.

MGMTPRE und MGMTMAC

Legen den Präfix fest, der den globalen DSECTS, Konstanten und Gleichsetzungen vorangestellt wird. Dieses Präfix besteht aus den beiden Operanden MGMTPRE und MG-MTMAC, die in dieser Reihenfolge zusammengesetzt werden.
Wenn ein Präfix verwendet wird, muss dieser mit dem bei SACMGMT im Operanden PREFIX übereinstimmen, da sonst Übersetzungsfehler auftreten.

ACTION

legt die auszuführende Aktion fest. Dieser Operand muss bei MF=L angegeben werden. Wird nur ein Parameterbereich verwendet, so muss dieser bei einem Wechsel von *ADD nach *MODIFY oder umgekehrt neu initialisiert werden.

=*ADD

Die Zugriffsbedingung wird hinzugefügt. Dies entspricht dem Kommando /ADD-AC-CESS-CONDITIONS. Existiert das angegebene Guard nicht, wird es durch einen impliziten CREGUAD-Aufruf mit den Standardwerten angelegt.

=*MODIFY

Eine bestehende Zugriffsbedingung wird geändert. Dies entspricht dem SDF-Kommando /MODIFY-ACCESS-CONDITIONS

DIALOG

Im Dialogbetrieb kann der Anwender die Funktion mit Kontrolldialog nutzen. Im Batchbetrieb wird immer DIALOG=*NO angenommen, auch wenn andere Angaben gemacht wurden.

=*STD

Im Dialogbetrieb: *GUARD (siehe dort) Im Batchbetrieb: *NO

=*NO

Die Funktion wird ohne Rückfrage auf jedes der Auswahl entsprechende Guard ausgeführt.

=*GUARD

Der Anwender kann für jedes der Auswahl entsprechende Guard im Dialog entscheiden, wie weiterzuverfahren ist:
NO: Funktion nicht ausführen
YES: Funktion ausführen
TERMINATE: Funktion abbrechen, auch wenn noch weitere Guards bearbeitet werden könnten.

=*USERID

Diesen Kontrolldialog kann nur ein Guard-Administrator verwenden.
Wurden in der Benutzerkennung Musterzeichen verwendet, wird bei jedem Wechsel einer Benutzerkennung ein Dialog eröffnet, in dem bestimmt werden kann, ob die der Auswahl entsprechende Benutzerkennung bearbeitet wird. Der Dialog kann wie bei *GUARD gesteuert werden.

=*CATALOG

Wurden in der Katalogkennung Musterzeichen verwendet, wird bei jedem Wechsel einer Katalogkennung ein Dialog eröffnet, in dem bestimmt werden kann, ob die der Auswahl entsprechende Katalogkennung bearbeitet wird. Der Dialog kann wie bei *GUARD gesteuert werden.

ERRMSG

gibt an, ob Fehlermeldungen am Terminal (*SYSOUT) angezeigt werden.

=*NO

Keine Fehlermeldungsausgabe am Terminal

=*YES

Fehlermeldungsausgabe am Terminal

GUARD

Name des zu bearbeitenden Guard. Der Name darf Musterzeichen enthalten. Es dürfen nur Großbuchstaben verwendet werden. Musterzeichen in der Benutzerkennung sind nur dem Guard-Administrator erlaubt. Dieser Operand muss bei MF=L angegeben werden.

SUBTYPE

Legt den Typ der zu ändernden Subjekte fest.

=*NONE

Es werden keine speziellen Zugriffsbedingungen definiert. Es wird ein Guard vom Typ STDACC eingerichtet.

=*USER

Angabe der Benutzerkennungen, für die die nachfolgende Definition gilt.

=*GROUP

Angabe der Benutzergruppe, für die die nachfolgende Definition gilt.

=*OTHER

Angabe, wie mit allen anderen Benutzern, die weder in der *USER-Liste noch einer der explizit genannten Benutzergruppen enthalten sind, verfahren werden soll.

=*ALLUSER

Einträge bei *ALLUSER werden als letzte ausgewertet, wenn die bis dahin ausgewerteten Bedingungen das Ergebnis „Bedingungen erfüllt“ geben. Bei der Auswertung werden die Zugriffsbedingungen für *USER, *GROUP und *OTHERS mit der von *ALL-USERS über das logische UND verknüpft.

SUBIDS

Bis zu je 20 Einträgen für *USER und *GROUP können explizit mit einem Aufruf eingetragen werden. Sollen Subjekte von diesem Guard verwaltet werden, muss überlegt werden, ob die Zusammenfassung über Gruppen zusammen mit der Definition der Zugriffsbedingung bei *ALLUSER diese Liste soweit verkürzt, dass nur die wirklichen Sonderfälle einzeln eingetragen werden müssen.

ADMISS

Regelt, wie auf das durch das Guard geschützte Objekt zugegriffen werden darf. Ist für *ALLUSER ADMISS=*NO gegeben worden, lautet das Ergebnis der Auswertung immer, dass die Bedingungen nicht erfüllt sind, selbst wenn für einen Benutzer AD-MISS=*YES eingetragen ist.

=*YES

ein Zugriff ist immer erlaubt (sofern durch *ALLUSER überhaupt zugelassen)

=*NO

ein Zugriff ist nie erlaubt

=*PARAMS

Ein Zugriff ist unter bestimmten Bedingungen gestattet, die im folgenden definiert werden

CKTIME

legt fest, wie eine zeitliche Begrenzung in Stunden und Minuten zu werten ist:

=*NO

Die Zeit-Bedingung wird nicht bewertet.

=*ADMISSION

Während der angegebenen Zeit ist der Zugriff erlaubt.

=*EXCLUSION

Während der angegebenen Zeit ist der Zugriff verboten.

TIMEN

Gibt an, wie viele Zeitintervalle definiert werden. Es sind maximal 4 Zeitintervalle möglich.

TIME#1 - TIME#4

Definition je eines Zeitintervalls in Stunden und Minuten. Die Zeit ist in Form von HH:MM immer fünfstellig anzugeben.

CKDATE

legt fest, wie eine zeitliche Begrenzung in Form eines Datums zu werten ist:

=*NO

Die Datumsbedingung wird nicht bewertet.

=*ADMISSION

Während der angegebenen Zeit ist der Zugriff erlaubt.

=*EXCLUSION

Während der angegebenen Zeit ist der Zugriff verboten.

DATEN

Gibt an, wie viele Datumsintervalle definiert werden. Es sind maximal 4 Datumsintervalle möglich.

DATE#1 - DATE#4

Definition je eines Datumsintervalls. Das Datum ist in Form von
JJJJ-MM-DD immer zehnstellig anzugeben. Wird bei einem Datums-Intervall die obere Grenze weggelassen, wird sie mit der unteren gleichgesetzt.

CKWEEK

legt fest, wie eine zeitliche Begrenzung in Form eines Wochentags zu werten ist:

=*NO

Die Wochentagsbedingung wird nicht bewertet.

=*ADMISSION

Während der angegebenen Zeit ist der Zugriff erlaubt.

=*EXCLUSION

Während der angegebenen Zeit ist der Zugriff verboten.

MO, ..., SU

Angabe der Wochentage, an denen die mit CKWEEK festgelegte Zugriffsbedingung gilt. Die Operandennamen haben folgende Bedeutung:

MO: MOnday (Montag)
TU: TUesday (Dienstag)
WE: WEdnesday (Mittwoch)TH: THursday (Donnerstag)FR: FRiday (Freitag)
SA: SAturday (Samstag
SU: SUnday (Sonntag)

=*NO

Der Wochentag hat keinen Einfluss auf eine Zugriffsbedingung.

=*YES

Die Zugriffsbedingung gilt an diesem Wochentag.

CKPRIV

legt fest, wie die Angabe eines Privilegs zu werten ist:

=*NO

Die Privileg-Angabe wird nicht bewertet.

=*ADMISSION

Dem angegebenen Privileg ist der Zugriff erlaubt.

=*EXCLUSION

Dem angegebenen Privileg ist der Zugriff verboten.

ACSADM, ..., VM2ADM

Angabe der Privilegien, an denen die mit CKPRIV festgelegte Zugriffsbedingung gilt:
Die Operandennamen haben folgende Bedeutung:


Operand

Prvileg

ACSADM

ACS-ADMINISTRATION

CUPRV001 ... 008

CUSTOMER-PRIVILEGE-1 ... 8

FTADM

FT-ADMINISTRATION

FTACADM

FTAC-ADMINISTRATION

GUAADM

GUARD-ADMINISTRATION

HWMAINT

HARDWARE-MAINTENANCE

HSMSADM

HSMS-ADMINISTRATION

NETADM

NET-ADMINISTRATION

NOTIFADM

NOTIFICATION-ADMINISTRATION

OPERATG

OPERATING

POSXADM

POSIX-ADMINISTRATION

PRSVADM

PRINT-SERVICE-ADMINISTRATION

PROPADM

PROP-ADMINISTRATION

SATFEVA

SAT-FILE-EVALUATION

SATFMGM

SAT-FILE-MANAGEMENT

SECADM

SECURITY-ADMINISTRATION

STDPROC

STD-PROCESSING

SUBSMGM

SUBSYSTEM-MANAGEMENT

SWMONAD

SW-MONITOR-ADMINISTRATION

TAPEADM

TAPE-ADMINISTRATION

TAPEKEYADM

TAPE-KEY-ADMINISTRATION

TSOS

TSOS

USERADM

USER-ADMINISTRATION

VMPRIV

VIRTUAL-MACHINE-ADMINISTRATION

VM2ADM

VM2000-ADMINISTRATION


=*NO

Das Privileg hat keinen Einfluss auf eine Zugriffsbedingung.

=*YES

Die Zugriffsbedingung gilt für dieses Privileg.

PHASEN

Gibt an, wie viele Programmdefinition folgen. Es sind maximal 4 Programmdefinitionen möglich. Bei Programmen ist darauf zu achten, dass sie wirksam gegen Änderungen geschützt sind (also nur das Ausführungsrecht für den Benutzer besitzen).
Um Konflikte bei der Verwendung von Modulen des Typs OM oder LLM zu vermeiden, wird empfohlen, die Module in unterschiedlichen Bibliotheken zu halten (siehe auch Handbuch „LMS“ [23]).

PHASE#1 - PHASE#4

Nummerierte Definition für je ein Programm. Jede Programmdefinition kann wie folgt spezifiziert werden:

type

Gibt den Typ des Programmbehälters an

=*FILE

Das Programm ist eine gebundene Phase, die in einer Datei abgelegt ist. Die Operanden element und version werden nicht berücksichtigt.

=*PHASE

Das Programm ist eine gebundene Phase, die in einem Bibliothekselement vom Typ C abgelegt ist.

=*MODULE

Das Programm ist ein Modul oder LLM, das in einem Bibliothekselement vom Typ R oder L abgelegt ist.

library

Name der Bibliothek oder der Datei, die das Programm enthält.

element

Name des Bibliothekselements, das das Programm enthält.

version

Version des Bibliothekselements, das das Programm enthält.

=*ANY

Die Version kann einen beliebigen Wert haben.

Hinweise zur Anwendung

Mit diesem Makro werden Zugriffsbedingungen als ganzes verändert. Jede Zugriffsbedingung besteht aus:

  • Art der Zugriffsbedingung (Operand beginnt mit CK...)

  • eine oder mehrere Bedingungen

Werden nicht alle Operanden einer Zugriffsbedingung angegeben, ist zu beachten:

  • Wird ein Operand, beginnend mit CK..., nicht angegeben, so wird der Standardwert *NO angenommen und alle übrigen Operanden der Zugriffsbedingung nicht berücksichtigt oder, falls vorhanden, auf die Standardwerte (ebenfalls *NO) gesetzt.

  • Wird beim Operanden CK... der Wert *NO explizit angegeben, werden alle übrigen Operanden der Zugriffsbedingung nicht berücksichtigt oder, falls vorhanden, auf die Standardwerte (ebenfalls *NO) gesetzt.

  • Alle nicht angegebenen Operanden, die zu einer Bedingung (Operand beginnt mit CK...) gehören, werden mit den Standardwerten belegt.

  • Wurde als Operandenwert *ADMISSION oder *EXCLUSION angegeben, muss mindestens ein Intervall oder Programm oder Privileg definiert werden.

Makro-Returncode

SC2   

SC1  

Maincode

Erläuterung


X’01’

X’1000’

Der angegebene Wert des Operanden liegt nicht im erlaubten Bereich. Der fehlerhafte Operand steht als symbolischer Wert im SC2


X’20’

X’1001’

Ein interner Fehler trat auf. Für eine genauere Analyse wurde ein SERSLOG-Eintrag geschrieben


X’40’

X’1002’

Der Guard-Name ist syntaktisch falsch


X’40’

X’1003’

Speicher für den Parameterbereich nicht in der benötigten Länge allokiert oder nicht zugreifbar


X’40’

X’1007’

Das angegebene Guard existiert nicht


X’80’

X’1009’

Das angegebene Guard ist von einer anderen Task gesperrt

X’02’

CMD

X’1011’

Kommando wurde auf Wunsch des Benutzers abgebrochen


X’40’

X’1012’

Der angegebene Katalog ist nicht definiert oder nichtzugreifbar


X’40’

X’1013’

Das Pubset ist bei der GUARDS-Verwaltung unbekannt (Guardskatalog wurde wahrscheinlich bei IMPORT-PUBSET nicht geöffnet)


X’40’

X’1014’

Der Benutzer ist nicht autorisiert, die Funktion auszuführen


X’40’

X’1015’

Das angegebene Subjekt ist nicht im Guard enthalten


X’40’

X’1016’

Fehler im Kommunikationsmittel des MRS


X’40’

X’1017’

Unbekannte Benutzerkennung


X’40’

X’1018’

Fernes System nicht verfügbar


X’40’

X’1020’

Kein Speicher mehr vorhanden


X’40’

X’1021’

BCAM-Verbindungsfehler


X’40’

X’1022’

BCAM-Verbindung unterbrochen


X’40’

X’1023’

Kein Guard entspricht den Auswahlkriterien


X’40’

X’1026’

Kennung bereits in Bedingung enthalten


X’40’

X’1027’

Bedingungsbereich voll


X’40’

X’1028’

Guard hat falschen Typ


X’40’

X’1029’

GUARDS auf dem fernen Rechner nicht verfügbar

X’02’

X’40’

X’1035’

Kommando nicht ausgeführt


X’80’

X’1036’

Guardskatalog gesperrt


X’80’

X’1038’

Guardskatalog durch ARCHIVE gesperrt