繁体   English   中英

从HermesJMS到MQ8的错误2035('MQRC_NOT_AUTHORIZED')

[英]Error 2035 ('MQRC_NOT_AUTHORIZED') from HermesJMS to MQ8

我正在使用HermesJms访问MQ8服务器。

后者具有以下配置:

在此处输入图片说明

但是,当我尝试通过Hermes提供的相关选项“发现”时,出现2035 ,队列管理器错误日志中出现以下消息:

AMQ9557: Queue Manager User ID initialization failed for 'pkaramol'.

EXPLANATION:
The call to initialize the User ID 'pkaramol' failed with CompCode 2 and Reason
2035.

请注意, pkaramol是我以运行Hermes的linux机器登录的本地OS用户。

问题

1)为什么我禁用了CHLAUTHCONNAUTH却得到以下错误:

ALTER QMGR CHLAUTH(DISABLED) CONNAUTH(' ')

REFRESH SECURITY TYPE(CONNAUTH)

2)尽管我在mquserClientIDuser字段中都明确提供了mquser ,但是为什么服务器试图将pkaramol视为用户尝试访问队列管理器?

我在HermesJMS上找不到太多文档,但是通过一些试验和错误,我发现如果单击“发现”,它将不接受“ User和“ Password设置,它将始终将您登录的用户发送到队列管理器,这是为什么看不到用户mquser 因为您以运行队列管理器的服务器上不存在的pkaramol用户pkaramol运行它,所以会收到以下错误:

AMQ9557: Queue Manager User ID initialization failed for 'pkaramol'.

我还发现,要执行发现,它会使用模型队列SYSTEM.DEFAULT.MODEL.QUEUE打开一个临时动态队列,并将PCF消息放入SYSTEM.ADMIN.COMMAND.QUEUE 此外,要发现任何队列详细信息,队列上必须至少具有+inq+dsp

在您的评论中,您声明已将用户pkaramol添加到服务器,并将其放在mqm组中。 尽管这是使它起作用的快速方法,但它确实为该用户提供了完全的MQ Admin访问权限。 您可以为实际用户提供以下权限,但仍然能够发现队列管理器上的所有对象。 请更换字group下面一组你的用户是在服务器上的成员:

setmqaut -m DMSQM -t qmgr -g group +connect +inq +dsp
setmqaut -m DMSQM -n SYSTEM.ADMIN.COMMAND.QUEUE -t queue -g group +inq +put +dsp
setmqaut -m DMSQM -n SYSTEM.DEFAULT.MODEL.QUEUE -t queue -g group +get +dsp
setmqaut -m DMSQM -n '**' -t queue -g group +inq +dsp

我还指出,一旦您通过发现或手动添加队列填充了队列,它将使用您指定的用户。

请注意,在禁用CHLAUTHCONNAUTH的情况下,队列管理器将采用任何呈现的用户并使用它。 您可以启用CONNAUTH并指定有效的用户名和密码,然后MQ会对它进行身份验证。

由于Discover不遵守User设置,因此另一个选项是在mquser的SVRCONN通道上设置MCAUSER

您需要授予UserId'pkaramol'权限,才能通过setmqaut命令访问队列管理器和队列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM