3

我看到一堆看起来像的错误

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

每当我通过 MQ Explorer 访问队列对象时,在 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

我该如何摆脱这些?

4

1 回答 1

1

当 WMQ Explorer 绘制队列屏幕时,它需要枚举所有队列,并通过发出相当于DIS Q(*)PCF 命令的命令服务器来实现。该命令的结果在每个队列的基础上返回,因此用户有权访问的MQCC=0每个队列 display 返回,而用户无权访问 display 的每个队列返回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因为单个星号通配符仅匹配名称中的单个节点。两个星号通配符 likeSYSTEM**将匹配两个名称。要匹配所有SYSTEM队列,您通常会使用模式SYSTEM.**,包括点和两个星号。这样,该模式会排除用户定义的名称,例如SYSTEMIC 但匹配所有默认对象名称。要匹配所有队列,只需使用**上面命令示例中所示的模式。

您还将在其他对象上遇到许多相同的错误。要一步解决所有这些问题,首先应用基本授权,如在 WebSphere MQ Explorer 中查看通道一文中所述。这提供了显示和/或查询所有对象的能力,然后您可以添加更具体的配置文件以允许仅在mq-user需要更多访问权限的对象上放置、获取、浏览等。

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

于 2012-08-06T17:49:02.037 回答