You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Websphere MQ 7.0遇2035错误,如何允许任意用户连接发送数据?

解决WebSphere MQ 7.0中2035权限错误(允许所有用户连接发送)

首先得明确:MQ错误码2035就是权限验证失败——MQ默认会校验连接用户是否拥有访问队列管理器、发送消息的权限。既然用户数量频繁变动,没法挨个加到mqm组,下面几个方案能帮你实现“允许所有用户连接并发送数据”的需求,我按安全性和实用性排序给你说明:

方案1:配置通道认证规则(推荐,安全且灵活)

WebSphere MQ 7.0支持通道认证记录(CARs),可以通过规则批量授权所有用户:

  1. 先打开MQSC命令行工具,输入:runmqsc <你的队列管理器名称>
  2. 添加通道级的用户映射规则,允许所有用户连接指定的服务器连接通道:
    SET CHLAUTH(<你的通道名>) TYPE(USERMAP) DESCR('允许所有用户连接该通道') USERLIST('*') USERSRC(CHANNEL) ACTION(ADD)
    
  3. 接下来要给所有用户授予发送消息的权限,你可以针对特定队列或者整个管理器授权:
    • 给所有用户授予某队列的PUT权限:
      SET AUTHREC PROFILE(<目标队列名>) OBJTYPE(QUEUE) PRINCIPAL('*') AUTHADD(PUT)
      
    • 给所有用户授予队列管理器的CONNECT权限(必须的,否则连不上):
      SET AUTHREC PROFILE(<你的队列管理器名>) OBJTYPE(QMGR) PRINCIPAL('*') AUTHADD(CONNECT)
      
  4. 输入END退出MQSC,然后刷新权限让配置生效:REFRESH SECURITY TYPE(CONNAUTH)

方案2:关闭连接认证(适合测试/内部可信环境)

如果你的环境不需要严格的用户身份校验,可以直接关闭MQ的连接认证:

  1. 进入MQSC:runmqsc <你的队列管理器名称>
  2. 修改队列管理器的CONNAUTH配置,清空验证规则:
    ALTER QMGR CONNAUTH(' ')
    
  3. 同样需要给所有用户授予CONNECT和PUT权限(参考方案1的AUTHREC命令),然后刷新权限:REFRESH SECURITY TYPE(CONNAUTH)

注意:这个方案安全性很低,只建议在测试环境或者完全可信的内部网络里用,生产环境谨慎考虑。

方案3:使用通道MCAUSER属性(集中管理权限)

你可以给服务器连接通道设置一个拥有足够权限的MCAUSER,这样所有通过该通道连接的客户端都会以这个用户的身份执行操作,不用管客户端自己的用户名:

  1. 进入MQSC:runmqsc <你的队列管理器名称>
  2. 修改通道的MCAUSER为mqm组的用户(比如直接用mqm,或者创建一个专门的低权限用户,只给CONNECT和PUT权限):
    ALTER CHANNEL(<你的通道名>) CHLTYPE(SVRCONN) MCAUSER('mqm')
    
  3. 刷新通道配置:REFRESH CHANNEL(<你的通道名>)

这个方案的优势是不用管客户端的用户变动,所有请求共享MCAUSER的权限。但要注意最小化MCAUSER的权限,别直接用mqm(权限太大),最好创建一个专用的业务用户,只授予必要的权限,降低安全风险。

根据你的实际环境选就行,优先推荐方案1,它在安全和灵活之间平衡得最好;如果是测试环境图省事可以用方案2;方案3适合需要集中管控通道权限的场景。

内容的提问来源于stack exchange,提问作者sebkoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:59:35