Как в 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)
при желании!
Конечно, следует отметить, что установка любого универсального доступа должна быть тщательно продумана.