Как в z/OS с использованием RACF предоставить нескольким людям доступ для чтения к моему набору данных?

Я предпочитаю понимать, как это сделать из командной строки TSO, а не с помощью ISPF. Еще хотелось бы понять, нужно ли сначала привлекать системного программиста для настройки группы

2 ответа

Сначала вам нужно создать профиль набора данных RACF, чтобы охватить рассматриваемый набор данных, если он еще не существует, с помощью ADDSD:

      ADDSD 'userid1.JCL.CNTL'

Где userid1.JCL.CNTL — это набор данных, к которому вы хотите предоставить доступ.

Обратите внимание , что эта команда создаст отдельный профиль , если вы не добавите необязательныйGEN(для общего ) вADDSD. Дискретные профили защищают только один набор данных, и, что более важно, дискретные профили удаляются при удалении защищаемого ими набора данных. В большинстве случаев это нежелательно, поэтому в большинстве случаев лучше создать общий профиль , даже если он будет защищать только один набор данных.

Кроме того, вам следует решить, какой уровень доступа вы хотите разрешить к «вселенной», указав ключевое слово. По умолчанию дляUACCзависит от вашей текущей группы подключения. Вы можете запретить доступ кому угодно, кроме тех, кому выPERMITдоступ, указавUACC(NONE)

      ADDSD 'userid1.JCL.CNTL' GEN UACC(NONE)

Затем РАЗРЕШИТЕ ​​доступ к этому вновь созданному профилю.

      PERMIT 'userid1.JCL.CNTL' GEN ID(userid2) ACCESS(READ)

Где userid1 — ваш идентификатор пользователя, а userid2 — ваш соавтор. В соответствии с типичными соглашениями вам будет разрешено контролировать разрешения наборов данных под вашим квалификатором высокого уровня. Вы также можете создавать общие профили, чтобы предоставить доступ к нескольким наборам данных:

      ADDSD 'userid1.JCL.*' GEN UACC(NONE)
PERMIT 'userid1.JCL.*' ID(userid2) ACCESS(READ)

Вы также можете разрешить группе пользователей доступ к вашим наборам данных, введя имя группы в поле идентификатора:

      PERMIT 'userid1.JCL.*' ID(groupa) ACCESS(READ)

Если вам нужно создать новую группу, вероятно, вам понадобится помощь системного программиста. Чтобы добавить пользователя в группу, вам понадобится команда CONNECT .

      CONNECT (userid2) OWNER(groupa)

Для добавления (подключения) новых пользователей в группу вам необходимы полномочия AUTH=CONNECT .Вы можете проверить, есть ли у вас права подключения к группам, к которым у вас есть доступ, введя команду LISTUSER:

      LISTUSER userid1

Где userid1 — ваш идентификатор пользователя. Результат будет похож на:

      USER=userid1  NAME=your name         OWNER=groupa   CREATED=23.033    
 DEFAULT-GROUP=groupa  PASSDATE=23.153 PASS-INTERVAL= 30 PHRASEDATE=N/A   
 ATTRIBUTES=NONE                                                           
 REVOKE DATE=NONE   RESUME DATE=NONE                                       
 LAST-ACCESS=23.171/21:55:05                                               
 CLASS AUTHORIZATIONS=NONE                                                 
 NO-INSTALLATION-DATA                                                      
 NO-MODEL-NAME                                                             
 LOGON ALLOWED   (DAYS)          (TIME)                                    
 ---------------------------------------------                             
 ANYDAY                          ANYTIME                                   
  GROUP=groupa   AUTH=USE      CONNECT-OWNER=groupa   CONNECT-DATE=23.033
    CONNECTS=    68  UACC=NONE     LAST-CONNECT=23.171/21:55:05            
    CONNECT ATTRIBUTES=NONE                                                
    REVOKE DATE=NONE   RESUME DATE=NONE                                    
  GROUP=IZUUSER   AUTH=USE      CONNECT-OWNER=groupb   CONNECT-DATE=23.167 
    CONNECTS=    00  UACC=NONE     LAST-CONNECT=UNKNOWN                     
    CONNECT ATTRIBUTES=NONE                                                 
    REVOKE DATE=NONE   RESUME DATE=NONE                                     
SECURITY-LEVEL=NONE SPECIFIED                                               
CATEGORY-AUTHORIZATION                                                      
 NONE SPECIFIED                                                             
SECURITY-LABEL=NONE SPECIFIED                                               
READY                                                                       

Но вам нужны полномочия AUTH=JOIN в вышестоящей группе, чтобы использовать команду ADDGROUP для создания новой подчиненной группы. Группы в RACF имеют иерархическую структуру, и вам потребуются соответствующие полномочия в вышестоящей группе.

      ADDGROUP mygroup SUPGROUP(groupa)
ICH00007I INSUFFICIENT AUTHORITY TO SUPERIOR GROUP.

Одна вещь, о которой я еще не упоминал, — это возможность предоставлять «универсальный» доступ. Это может пригодиться для создания профилей наборов данных, чтобы доступ предоставлялся автоматически без необходимости создавать новые профили при создании новых наборов данных.

Например: возможно, существует сценарий, в котором все наборы данных, соответствующие фильтру типа BOB.SHARE.*.**, должны быть «читаемы» всеми. Это можно сделать с помощью ключевого слова UACC в RACF при определении или изменении профиля набора данных.

Чтобы добавить новый профиль RACF:

      ADDSD 'BOB.SHARE.*.**' UACC(READ)

Чтобы изменить существующий профиль RACF:

      ALTDSD 'BOB.SHARE.*.**' UACC(READ)

UACC(READ)можно было бы изменить наUACC(ALTER)при желании!

Конечно, следует отметить, что установка любого универсального доступа должна быть тщательно продумана.

Другие вопросы по тегам