小编典典

IBM MQ-权限-阅读透视图

java

为了授予队列管理器的 所有对象 (队列,通道等)的读取权限以监视视角,需要什么命令/权限。我的监视客户端使用Java api。

威尔MQZAO_ALL_ADMIN用于此目的的权限做。可setmqaut 用于设置此权限,但是此命令具有+ put,+
get等选项,而不是MQZAO_ALL_ADMIN。目前,我正在setmqaut为每个队列等使用8.0.0.4版。


阅读 413

收藏
2020-11-26

共1个答案

小编典典

对于只读用户,您不想使用它,MQZAO_ALL_ADMIN因为这将授予管理权限。在这方面setmqaut+alladm并提供+chg +clr +dlt +dsp队列。

通常,对于只读对象,您将+connect +inq +dsp针对该qmgr对象以及+dsp要监视的任何对象提供该对象。
+dsp使您可以查看对象的名称以及某些情况下的对象详细信息。对于某些对象(队列,进程,名称列表),还需要添加+inq以查看对象的详细信息。如果要使用动态队列,还需要提供+putSYSTEM.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和用户名直接将权限授予该用户。在v8之前的Unix上,如果您使用-p,它将实际上将权限授予用户主组;在v8中,之后,如果您将其添加SecurityPolicy=userService:qm.ini节,它将表现得像Windows一直拥有的并且仅向用指定的用户-p。在大型组织中,这是首选方法,因为您知道您仅向单个用户提供权限,如果您在组级别提供权限,则可能有人可以将第二个用户添加到该组,而第二个用户现在拥有相同的权限。


请注意setmqaut,在MQ v7.1和更高版本中,该命令的替代方法可以使用SET AUTHRECMQSC命令授予权限。以下命令将提供与上述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)
2020-11-26