IBM MQ - разрешения - перспектива чтения

Для того чтобы дать разрешение на чтение всем объектам администратора очередей (очередей, каналов и т. Д.) Для мониторинга, какая команда / разрешение требуется. Мой клиент мониторинга использует Java API.

Будет MQZAO_ALL_ADMIN разрешение сделать для этого. Можно setmqaut использоваться для установки этого разрешения, но у этой команды есть такие параметры, как +put, +get и т. д., а не MQZAO_ALL_ADMIN. В настоящее время я использую setmqaut для каждой очереди и т. д. с версией 8.0.0.4.

1 ответ

Решение

Только для чтения, вы не хотите использовать MQZAO_ALL_ADMIN так как это даст административную власть. С точки зрения setmqaut то есть +alladm и обеспечивает +chg +clr +dlt +dsp в очередях.

В общем для чтения только вы предоставите +connect +inq +dsp против qmgr объект и +dsp для любых объектов, которые вы хотите контролировать. +dsp позволяет увидеть название объекта и, в некоторых случаях, детали объекта. Для некоторых объектов (очередь, процесс, список имен) также необходимо добавить +inq чтобы увидеть детали объекта. Вы также должны предоставить +put к SYSTEM.ADMIN.COMMAND.QUEUE а также +get либо в модельную очередь, если вы собираетесь использовать динамические очереди, либо в обычную локальную очередь.

Вы также можете использовать подстановочные знаки, если хотите предоставить разрешение нескольким очередям.

Пример ниже предоставит разрешение только на чтение для всех объектов для всех типов:

setmqaut -m <QMGR>                               -t qmgr     -g group -all +connect +inq +dsp
setmqaut -m <QMGR> -n SYSTEM.ADMIN.COMMAND.QUEUE -t queue    -g group -all +inq +put +dsp
setmqaut -m <QMGR> -n SYSTEM.DEFAULT.MODEL.QUEUE -t queue    -g group -all +inq +get +dsp
setmqaut -m <QMGR> -n '**'                       -t namelist -g group -all +dsp +inq
setmqaut -m <QMGR> -n '**'                       -t process  -g group -all +dsp +inq
setmqaut -m <QMGR> -n '**'                       -t queue    -g group -all +dsp +inq
setmqaut -m <QMGR> -n '**'                       -t channel  -g group -all +dsp
setmqaut -m <QMGR> -n '**'                       -t clntconn -g group -all +dsp
setmqaut -m <QMGR> -n '**'                       -t listener -g group -all +dsp
setmqaut -m <QMGR> -n '**'                       -t service  -g group -all +dsp
setmqaut -m <QMGR> -n '**'                       -t topic    -g group -all +dsp

* Обратите внимание, что я всегда префикс разрешений с -all так что вы знаете, что разрешения, которые вы предоставляете, будут единственными разрешениями. Если у вас не было -all и группа выше уже имела другие разрешения, например, +put в очереди это разрешение останется, и вы будете добавлять +dsp +inq и в конечном итоге +put +dsp +inq,


Если администратор очередей работает в Windows, вы можете использовать -p и имя пользователя вместо этого, чтобы предоставить разрешение непосредственно этому пользователю. В Unix до v8, если вы использовали -p, он фактически предоставил бы разрешение основной группе пользователей, в v8 и позже, если вы добавите SecurityPolicy=user к Service: раздел qm.ini, он будет вести себя так, как всегда было в Windows, и предоставлять разрешение только пользователю, указанному в -p, В большой организации это может быть предпочтительным, так как вы знаете, что вы предоставили разрешение только одному пользователю, если вы предоставляете его на уровне группы, возможно, кто-то может просто добавить второго пользователя в эту группу, а второй пользователь теперь имеет такое же разрешение.


Обратите внимание, что альтернатива setmqaut команда, в MQ v7.1 и более поздних SET AUTHREC MQSC команды. Команды ниже предоставят те же разрешения, что и вышеприведенные команды setmqaut:

SET AUTHREC PROFILE('self')                       GROUP('group') OBJTYPE(QMGR)     AUTHRMV(ALL) AUTHADD(CONNECT,DSP,INQ)
SET AUTHREC PROFILE('SYSTEM.ADMIN.COMMAND.QUEUE') GROUP('group') OBJTYPE(QUEUE)    AUTHRMV(ALL) AUTHADD(DSP,INQ,PUT)
SET AUTHREC PROFILE('SYSTEM.DEFAULT.MODEL.QUEUE') GROUP('group') OBJTYPE(QUEUE)    AUTHRMV(ALL) AUTHADD(DSP,INQ,GET)
SET AUTHREC PROFILE('**')                         GROUP('group') OBJTYPE(NAMELIST) AUTHRMV(ALL) AUTHADD(DSP,INQ)
SET AUTHREC PROFILE('**')                         GROUP('group') OBJTYPE(PROCESS)  AUTHRMV(ALL) AUTHADD(DSP,INQ)
SET AUTHREC PROFILE('**')                         GROUP('group') OBJTYPE(QUEUE)    AUTHRMV(ALL) AUTHADD(DSP,INQ)
SET AUTHREC PROFILE('**')                         GROUP('group') OBJTYPE(CHANNEL)  AUTHRMV(ALL) AUTHADD(DSP)
SET AUTHREC PROFILE('**')                         GROUP('group') OBJTYPE(CLNTCONN) AUTHRMV(ALL) AUTHADD(DSP)
SET AUTHREC PROFILE('**')                         GROUP('group') OBJTYPE(LISTENER) AUTHRMV(ALL) AUTHADD(DSP)
SET AUTHREC PROFILE('**')                         GROUP('group') OBJTYPE(SERVICE)  AUTHRMV(ALL) AUTHADD(DSP)
SET AUTHREC PROFILE('**')                         GROUP('group') OBJTYPE(TOPIC)    AUTHRMV(ALL) AUTHADD(DSP)
Другие вопросы по тегам