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

如何让域组用户使用SVRCONN通道?CHLAUTH规则失效排查

解决MQ CHLAUTH规则未生效导致通道被阻止的问题

首先,从错误信息里能明确揪出问题根源:

AMQ9777E: Channel was blocked
EXPLANATION: The inbound channel 'C.MQTEST.USR' was blocked from address 'MQTEST (40.1.62.159)' because the active values of the channel matched a record configured with USERSRC(NOACCESS). The active values of the channel were 'CLNTUSER(c275607)'

你的客户端实际用户是c275607,但你配置的CHLAUTH规则指定CLNTUSER(MQ_Support@am)(这是域组),还误用了TYPE(USERMAP)——USERMAP类型是匹配单个客户端用户的,根本不支持匹配用户组,所以这条规则完全没触发,反而让你的请求匹配到了系统里某个USERSRC(NOACCESS)的规则(大概率是一个覆盖所有未匹配用户的默认规则)。

下面是具体的解决步骤:

1. 先排查导致阻止的NOACCESS规则

先执行命令找出所有带NOACCESS的CHLAUTH记录,确认哪条规则在阻止你:

dis chlauth(*) where(USERSRC eq NOACCESS)

如果发现类似CHLAUTH(*) TYPE(USERMAP) CLNTUSER(*) USERSRC(NOACCESS)的规则,这就是罪魁祸首——它会拦截所有没被更具体规则覆盖的用户。

2. 删除无效的USERMAP规则

你之前创建的USERMAP规则类型错误,先删掉它:

delete chlauth(C.MQTEST.USR)

3. 创建正确的GROUPMAP规则

要允许整个域组的用户使用通道,必须用TYPE(GROUPMAP)类型的规则,指定域组名称,同时按需映射MCAUSER:

define chlauth(C.MQTEST.USR) TYPE(GROUPMAP) CLNTGROUP('MQ_Support@am') USERSRC(MAP) MCAUSER('mq_pocmq9w02@am') CHCKCLNT(ASQMGR) ADDRESS(40.1.62.159)
  • TYPE(GROUPMAP):表示规则匹配客户端所属的用户组
  • CLNTGROUP('MQ_Support@am'):指定你要允许的域组(注意格式要和MQ识别的一致,带域名后缀)
  • 如果希望客户端用自身身份连接,可把USERSRC(MAP)改成USERSRC(CHANNEL),但要确保该域组用户拥有队列管理器的+CONNECT权限。

4. 确认规则优先级

MQ的CHLAUTH规则按匹配精度排序,越具体的规则优先级越高(比如指定了CLNTGROUP和ADDRESS的规则,优先级远高于CLNTUSER(*)的通用规则)。你可以用以下命令查看规则优先级顺序:

dis chlauth(*) sort(PRIORITY)

确保你创建的GROUPMAP规则排在NOACCESS规则前面。

5. 处理MFT的凭据问题

MFT命令提示没有指定凭据文件,你需要二选一:

  • 创建包含域用户c275607密码的凭据文件:
    fteCreateCredentials -p DLYMQMGR -u c275607 -w <你的密码>
    
  • (不推荐生产环境)调整队列管理器配置,允许该用户无需密码连接。

6. 验证目标用户权限

最后,确保mq_pocmq9w02@am(或客户端自身用户)拥有队列管理器的必要权限:

setmqaut -m DLYMQMGR -t qmgr -p mq_pocmq9w02@am +connect +inq

完成以上步骤后,重新执行MFT传输命令,应该就能正常连接了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:33:03