Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Access protection for members

Since they are contained in libraries, members enjoy the same degree of protection as the libraries themselves. It is also possible to give members added protection by making access rights explicit, instead of implicit.

Member access rights

r :

w :

x :

h :

a :

read

write

execute

hold

administer

The rights r, w, x and h are set for individual members and modified by means of the LMS statement MODIFY-ELEMENT-PROTECTION (see "MODIFY-ELEMENT-PROTECTION"). To display existing authorization settings, use the SHOW-ELEMENT-ATTRIBUTES statement (see "SHOW-ELEMENT-ATTRIBUTES").

Administer authorization is set for all the members in a given library with the LMS statement MODIFY-LIBRARY-ATTRIBUTES (see "MODIFY-LIBRARY-ATTRIBUTES") and for all the members of a given type with the statement MODIFY-TYPE-ATTRIBUTES (see "MODIFY-TYPE-ATTRIBUTES"). To display existing administer authorization settings, use the statement SHOW-LIBRARY-ATTRIBUTES (see "SHOW-LIBRARY-ATTRIBUTES") or SHOW-TYPE-ATTRIBUTES (see "SHOW-TYPE-ATTRIBUTES").
Administer authorization is used to specify the person(s) authorized to create, delete and rename members within a library or type.

The default setting for administer authorization is NONE, which allows all administration functions that are allowed by the protection of the library file.

Protection attributes can be modified only by the owner of the library.

For each right, one of the following protective mechanisms can be set:

NONE:

No special protection

STD:

Standard protection (BACL)            [ + password]

BY-GUARD:

Protection through GUARDS

Password protection is linked to BACL protection and so plays no role in GUARD protection.

Only one mechanism can be active for a given right at any point in time, but different mechanisms can be set for different rights. If the mechanism set for a right is changed, the values of the previously active mechanism are lost.

If it is unclear on the basis of the active mechanism and the current system environment whether an access right exists, no access is permitted.

This may occur for the following reasons:

protection by GUARDS, but the GUARDS subsystem is not installed

Possible remedies are:

change the system environment
change the active protection mechanism (option available to library owners only)

The various mechanisms implement protection as follows:

  1. NONE - no special protection

    - no access check

  2. STD - standard protection by BACL

    Each of the access rights listed above is assigned by means of protection bits and possibly by means of passwords to the following groups of users:

    OWNER:

    Owners of the library file

    GROUP:

    Group of the owner of the library file

    OTHERS:

    All others

    The group of selected users can be restricted further by means of passwords. Passwords are stored in encrypted form in the library. Access to a member protected by a password is permitted only if the password entered matches the password stored earlier in the password table (using the BS2000 command ADD-PASSWORD).

    The groups of authorized users and the passwords are defined by means of the USER and PASSWORD operands, respectively, in the LMS statement MODIFY-ELEMENT-PROTECTION.

  3. BY-GUARD - protection by GUARDS

    Access is determined on the basis of a protection description stored in a guard.

    A guard is an independent object of BS2000, which can be created, modified and deleted using BS2000 commands. The owner of the guard defines both the protection description and the group of users who may use the guard:

    SCOPE = USERID / USER-GROUP / HOST-SYSTEM

    (see [6 (Related publications)])

    The protection description contains conditions which must be satisfied before access is granted.

    These conditions may include:

    Date
    Time
    Weekday
    Task privilege
    Program loaded

    Access is granted only if the library owner is (still) permitted to use the guard and the conditions specified in GUARDS have been satisfied.

    The guard which is to be used to check access requests is specified by the library owner.

    Only GUARD names which were accepted by the GUARDS subsystem may be used. No check is made to determine whether or not the specified guard even exists. Permissible GUARD names are stored in the library exactly as they were specified.

    All GUARD names refer to the catalog ID (CATID) under which the library containing the GUARD name is cataloged.

    GUARD names without USERID refer to the user ID (USERID) under which the library containing the GUARD name is cataloged.

    GUARD names are displayed to everyone who is permitted to read the contents of the library.

    When using GUARDS protection for libraries and members, it is necessary to bear in mind certain special aspects, for example that it makes sense to protect individual members of a library only if the library itself is also protected, i.e. is in “PROTECTED MODE”.

    Example

    The library LIBR, which contains the member MEMB1, is available under the user ID USER1. USER2 would like to access MEMB1. USER1 has the guard GUARD1, which allows access to USER1 and USER2. There are three cases to consider:

    1. Only the library LIBR is read-protected by GUARD1

      In this case, LIBR is not handled as if it were a file. It is recognized that LIBR is a library, and the access protection is different than it would be if LIBR were a normal file. The library is in PROTECTED MODE, so that access is possible only via LMS or via the COPY-FILE command. A further attempt by USER1 or USER2 to gain read access (e.g. SHOW-FILE LIBR) will be rejected. It is possible, however, to access individual members, for example with SHOW-FILE *L(LIBR,MEMB1,S).If one or more members of LIBR are protected with GUARDS, copying is no longer possible (see 3 below).

    2. Only the members are protected by GUARD1.

      This method of protection makes no sense because the library must then have USER-ACC=*ALL-USERS in order for USER2 to be able to see the library. In this case, USER2 can copy the entire library and so gain access to all its members, regardless of what protection is specified for the individual members.

    3. The library and its individual members are protected by GUARDS.

      This method provides protection for the individual members of a library. All the users who are to be allowed access to members must be granted corresponding access rights to the library. In this case, however, this means only that those users can see the catalog entry and access it with LMS.
      Even then it makes sense to protect individual members with GUARDS. The actual access rights are determined by the lesser of the two access rights, i.e. if a user has no write access to the entire library, he cannot write a member even if a guard at member level would allow him to do so.

    If libraries are protected with GUARDS but no further protection is defined for the individual members, users can work with the members in almost the same way as with files.

Initial member protection

The owner of the library file can define initial member protection for the library and/or a specific member type.

If initial member protection was defined, the protection is entered for new members. If no initial member protection was defined, members are created without additional protection and are protected only by the library file protection.

If initial member protection is defined both for the library and for the relevant member type, only the protection defined for the type is taken into account. If the initial member protection is changed, the change affects only the protection of members created after that time, i.e. the protection of existing members remains unchanged.

Overview of protection attributes

Library level:

a:

NONE

/ BACL [+ password]

/ BY-GUARD

Initial member protection

r:

w:

x:

h:

NONE

NONE

NONE

NONE

/ BACL [+ password]

/ BACL [+ password]

/ BACL [+ password]

/ BACL [+ password]

/ BY-GUARD

/ BY-GUARD

/ BY-GUARD

/ BY-GUARD

Type level:

a:

NONE

/ BACL [+ password]

/ BY-GUARD

Initial member protection

r:

w:

x:

h:

NONE

NONE

NONE

NONE

/ BACL [+ password]

/ BACL [+ password]

/ BACL [+ password]

/ BACL [+ password]

/ BY-GUARD

/ BY-GUARD

/ BY-GUARD

/ BY-GUARD

Member level:

Member protection

r:

w:

x:

h:

NONE

NONE

NONE

NONE

/ BACL [+ password]

/ BACL [+ password]

/ BACL [+ password]

/ BACL [+ password]

/ BY-GUARD

/ BY-GUARD

/ BY-GUARD

/ BY-GUARD

Overview of rights required for LMS actions

The following overview shows which rights are required in order to perform specific LMS actions, and what conditions must have been satisfied. It is assumed that the library file can be opened in a suitable way.

The abbreviations used in the overview have the following meanings:

-

Action is either not permitted or not possible

*

Action may be executed by anyone

,

AND operator

/

OR operator

EATTR =

(CCSN, USER-DATE/TIME)

STATE

Member state set with MODIFY-ELEMENT-ATTRIBUTES.

WRITE-
CONTROL

Value of WRITE-CONTROL in effect in the member scope (see
MODIFY-TYPE-ATTRIBUTES or MODIFY-LIBRARY-ATTRIBUTES)

a:

The caller must have administer authorization for the member scope.
The caller can gain administer authorization in one of the following ways:

  1. Administer authorization for the relevant member type has been granted, and the caller belongs to the group of authorized users.

  2. Administer authorization has been granted not for the member type, but for the library, and the caller belongs to the group of authorized users.

  3. Neither for the member type, nor for the library has administer authorization been granted:

r:

The caller must have read authorization for the member.

w:

The caller must have write authorization for the member.

x:

The caller must have execute authorization for the member.

h:

The caller must have hold authorization for the member.

E:

The caller must be the owner of the library.

H:

The caller must be entered as the HOLDER of the member.

B:

Explicitly or implicitly specified base version.

LMS action

Required conditions

WRITE-CONTROL=

DEACTIVATED

ACTIVATED

Modify LIBRARY-ATTR

E

E

Modify TYPE-ATTR

E

E

Create 1st version

a

a

Create nth version

a

H(B) 1

STATE=

FREE

IN-HOLD

FREE

IN-HOLD

Show ELEMENT-ATTR

*

*

*

*

Delete version

a,w

-

a,w

-

Rename version2

a,w

-

-

-

Overwrite version

w

w,H

-

w,H

Modify EATTR

a/w

-

a/w

-

Set STATE=IN-HOLD

h

-

h

-

Set STATE=FREE

h

H/E

h

H/E

Read version

r

r

r

r

Execute version

x

x

x

x

Modify ELEMENT-PROT

E

E

E

E

1The new version is created with the attributes of the base version, i.e. with STATE=*IN-HOLD.

2If a member is to be renamed with the name of another existing member, that member must be authorized to overwrite.


Notes

  • In systems without a group structure, no access is possible through the user circle “group”. A setting analogous to USER-ACCESS is, however, possible through the user circles “owner” and “all others”.

  • Member protection is meaningful only when the library file is protected against UPAM accesses. Library files are protected against UPAM accesses if they are protected by means of a Basic Access Control List (BACL) or GUARDS and have been properly set up.

    Libraries input by a file transfer operation (openFT) are not considered to have been properly installed until they have been accessed for writing by PLAM.

  • For libraries that are protected against UPAM accesses, the following restrictions apply:

    • they can no longer be included in a library by ADD-ELEMENT

    • they can no longer be processed via remote file access (RFA).

    For such applications, the BACL protection must be deactivated for the library file. The library file is then no longer protected against UPAM accesses. It can now be processed like any other PAM file.

  • Libraries which contain protection attributes and are protected against UPAM access can only be copied by their owner using COPY-FILE.

  • GUARD protection is possible, provided, of course, that the GUARDS subsystem is available.