2017-05-03 25 views
2

爲了給予隊列管理器(隊列,通道等)的所有對象的讀取權限以監視透視圖,需要什麼命令/權限。我的監控客戶端使用java api。IBM MQ - 權限 - 讀取透視

MQZAO_ALL_ADMIN許可爲此目的。可以使用setmqaut來設置此權限,但此命令具有諸如+ put,+ get等不是MQZAO_ALL_ADMIN的選項。目前,我爲每個隊列使用setmqaut,版本8.0.0.4等。

回答

2

僅供您閱讀,您不想使用MQZAO_ALL_ADMIN,因爲這會給予管理權限。根據setmqaut+alladm並在隊列上提供+chg +clr +dlt +dsp

一般爲只讀,你會爲您要監視的任何對象提供+connect +inq +dspqmgr對象,+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和用戶名,而不是直接授予的權限給該用戶。在v8之前的Unix上,如果您使用-p,它實際上會授予用戶主要組的權限,如果您將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) 
+0

好的寫法。 – Roger

+0

@Roger謝謝。 – JoshMc