对于只读用户,您不想使用它,
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 +dspsetmqaut -m <QMGR> -n SYSTEM.ADMIN.COMMAND.QUEUE -t queue -g group -all +inq +put +dspsetmqaut -m <QMGR> -n SYSTEM.DEFAULT.MODEL.QUEUE -t queue -g group -all +inq +get +dspsetmqaut -m <QMGR> -n '**' -t namelist -g group -all +dsp +inqsetmqaut -m <QMGR> -n '**' -t process -g group -all +dsp +inqsetmqaut -m <QMGR> -n '**' -t queue -g group -all +dsp +inqsetmqaut -m <QMGR> -n '**' -t channel -g group -all +dspsetmqaut -m <QMGR> -n '**' -t clntconn -g group -all +dspsetmqaut -m <QMGR> -n '**' -t listener -g group -all +dspsetmqaut -m <QMGR> -n '**' -t service -g group -all +dspsetmqaut -m <QMGR> -n '**' -t topic -g group -all +dsp
*请注意,我总是在权限前面加上,
-all以便您知道所授予的权限将是唯一的权限。如果您没有
-all权限,并且上面的组已经具有其他权限,例如
+put,在队列中,该权限将保留,您将添加
+dsp +inq并最终得到
+put +dsp +inq。
如果队列管理器在Windows上,则可以使用
-p和用户名直接将权限授予该用户。在v8之前的Unix上,如果您使用-p,它将实际上将权限授予用户主组;在v8中,之后,如果您将其添加
SecurityPolicy=user到
Service:qm.ini节,它将表现得像Windows一直拥有的并且仅向用指定的用户
-p。在大型组织中,这是首选方法,因为您知道您仅向单个用户提供权限,如果您在组级别提供权限,则可能有人可以将第二个用户添加到该组,而第二个用户现在拥有相同的权限。
请注意
setmqaut,在MQ v7.1和更高版本中,该命令的替代方法可以使用
SETAUTHRECMQSC命令授予权限。以下命令将提供与上述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)


