IBM MQ – 权限 – 读取透视图
为了给队列管理器的所有对象 (队列,通道等)提供读取权限以监视透视图,需要什么命令/权限。 我的监控客户端使用java api。
MQZAO_ALL_ADMIN
权限是否可以用于此目的。 可以使用setmqaut
来设置此权限,但此命令具有+ put,+ get等选项,而不是MQZAO_ALL_ADMIN。 目前我在版本8.0.0.4中为每个队列等使用setmqaut
。
对于只读,您不希望使用MQZAO_ALL_ADMIN
因为这将提供管理权限。 就setmqaut
而言,这是+alladm
并在队列上提供+chg +clr +dlt +dsp
。
通常,对于只读,您将为qmgr
对象提供+connect +inq +dsp
,为要监视的任何对象提供+dsp
。 +dsp
允许您查看对象的名称,在某些情况下还可以查看对象的详细信息。 对于某些对象(队列,进程,名称列表),您还需要添加+inq
以查看对象的详细信息。 您还需要向SYSTEM.ADMIN.COMMAND.QUEUE
提供+put
,并且如果要使用动态队列,则转到模型队列,或者到正常的本地队列。
如果要为多个队列提供权限,也可以使用通配符。
以下示例将为所有类型的所有对象提供只读权限:
setmqaut -m -t qmgr -g group -all +connect +inq +dsp setmqaut -m -n SYSTEM.ADMIN.COMMAND.QUEUE -t queue -g group -all +inq +put +dsp setmqaut -m -n SYSTEM.DEFAULT.MODEL.QUEUE -t queue -g group -all +inq +get +dsp setmqaut -m -n '**' -t namelist -g group -all +dsp +inq setmqaut -m -n '**' -t process -g group -all +dsp +inq setmqaut -m -n '**' -t queue -g group -all +dsp +inq setmqaut -m -n '**' -t channel -g group -all +dsp setmqaut -m -n '**' -t clntconn -g group -all +dsp setmqaut -m -n '**' -t listener -g group -all +dsp setmqaut -m -n '**' -t service -g group -all +dsp setmqaut -m -n '**' -t topic -g group -all +dsp
*请注意,我总是使用-all
前缀权限,以便您知道您授予的权限将是唯一的权限。 如果你没有-all
并且上面的组已经拥有其他权限,例如+put
一个允许保留的队列中,你将添加+dsp +inq
并以+put +dsp +inq
。
如果队列管理器在Windows上,您可以使用-p
和用户名来直接向该用户授予权限。 在v8之前的Unix上,如果你使用了-p,它实际上会授予用户主要组的权限,在v8及更高版本中,如果你将SecurityPolicy=user
添加到qm.ini的Service:
节,它的行为就像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)