2012-08-06 336 views
3

我看到一堆错误,看起来像WebSphere MQ资源管理和AMQ8077错误

AMQ8077: Entity 'tcs-mq-user ' has insufficient authority to access object 'SYSTEM.INTERNAL.REPLY.QUEUE' 

上,每当我通过MQ资源管理器访问队列对象的MQ错误日志。这是重复了许多系统对象,如....

SYSTEM.MQEXPLORER.REPLY.MODEL SYSTEM.ADMIN.COMMAND.QUEUE 
SYSTEM.SELECTION.VALIDATION.QUEUE SYSTEM.DEFAULT.MODEL.QUEUE 
SYSTEM.RETAINED.PUB.QUEUE SYSTEM.PENDING.DATA.QUEUE 
SYSTEM.NDURABLE.MODEL.QUEUE SYSTEM.MQSC.REPLY.QUEUE 
SYSTEM.JMS.TEMPQ.MODEL SYSTEM.INTERNAL.REPLY.QUEUE 
SYSTEM.INTER.QMGR.PUBS SYSTEM.INTER.QMGR.FANREQ 
SYSTEM.INTER.QMGR.CONTROL SYSTEM.HIERARCHY.STATE 
SYSTEM.DURABLE.SUBSCRIBER.QUEUE SYSTEM.DURABLE.MODEL.QUEUE 
SYSTEM.DOTNET.XARECOVERY.QUEUE SYSTEM.DEFAULT.REMOTE.QUEUE 
SYSTEM.DEFAULT.MODEL.QUEUE SYSTEM.DEFAULT.LOCAL.QUEUE 
SYSTEM.DEFAULT.INITIATION.QUEUE SYSTEM.DEFAULT.ALIAS.QUEUE 
SYSTEM.DEAD.LETTER.QUEUE SYSTEM.CLUSTER.TRANSMIT.QUEUE 
SYSTEM.CLUSTER.REPOSITORY.QUEUE SYSTEM.CLUSTER.REPOSITORY.QUEUE 
SYSTEM.CLUSTER.HISTORY.QUEUE SYSTEM.CLUSTER.COMMAND.QUEUE 
SYSTEM.CICS.INITIATION.QUEUE SYSTEM.CICS.INITIATION.QUEUE 

如何摆脱这些?

回答

1

当WMQ资源管理器绘制队列屏幕时,它需要枚举所有队列,并通过发出相当于DIS Q(*)的命令服务器作为PCF命令来执行此操作。该命令的结果以每个队列为基础返回,因此用户有权访问的每个队列都会显示返回MQCC=0,而用户无法访问的每个队列都会显示返回MQCC=2, MQRC=2035。由于它是为每个队列定义的,所以您需要授权tcs-mq-user至少显示所有队列。

由于tcs-usermq-user组(基于以前的贴子笔记)的再做到这一点:

SET AUTHREC PROFILE('**') GROUP('mq-users') OBJTYPE(QUEUE) AUTHADD(DSP) 

请注意,您需要星号在配置文件名称,因为WMQ识别点阵字符作为节点分隔符。例如,使用SYSTEM*的配置文件将匹配名为SYSTEM_QUEUE的队列,但不会有一个名称为SYSTEM.QUEUE的队列,因为单个星号通配符仅与名称中的单个节点匹配。两个星号通配符(如SYSTEM**)可以匹配两个名称。要匹配所有SYSTEM队列,通常会使用SYSTEM.**的模式,包括点和两个星号。这样的模式排除用户定义的名称,如SYSTEMIC,但匹配所有的默认对象名称。要匹配所有队列,只需使用上述命令示例中所示的**模式。

您还会在其他对象上发现许多相同的错误。要在一个步骤中解决所有这些问题,请首先应用Viewing Channels in WebSphere MQ Explorer上的帖子中所述的基本授权。这样可以显示和/或查询所有对象,然后您可以添加更多特定的配置文件,以允许在需要更多访问权限的对象上放置,获取,浏览等。

您可能还想看看developerWorks上的WebSphere MQ Security Heats Up文章,了解更多背景知识和setmqaut命令。

+0

一如既往,非常感谢。 – arrehman 2012-08-06 20:12:45