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)