Ibm mq MQ 7.0.x是否阻止mqm用户将消息放入队列

Ibm mq MQ 7.0.x是否阻止mqm用户将消息放入队列,ibm-mq,mq,Ibm Mq,Mq,我是新来的。我有一个名为QM1的qmgr和一个名为Q1的本地队列。存在MCA设置为mqm的SVRCONN通道 我想阻止通过此通道传入的消息将消息放入Q1。 我正在使用setmqaut,但它没有按我所希望的那样工作。您无法阻止通过该通道的特定API调用的原因是,MCAUSER('mqm')设置确保通过该通道连接的任何内容始终以完全管理权限连接。无法使用setmqaut或任何其他本机WMQ功能来阻止管理员访问队列。QMgr始终允许管理员访问,而不考虑任何setmqaut设置 现在还不清楚该推荐什么,

我是新来的。我有一个名为QM1的qmgr和一个名为Q1的本地队列。存在MCA设置为mqm的SVRCONN通道

我想阻止通过此通道传入的消息将消息放入Q1。
我正在使用setmqaut,但它没有按我所希望的那样工作。

您无法阻止通过该通道的特定API调用的原因是,
MCAUSER('mqm')
设置确保通过该通道连接的任何内容始终以完全管理权限连接。无法使用
setmqaut
或任何其他本机WMQ功能来阻止管理员访问队列。QMgr始终允许管理员访问,而不考虑任何
setmqaut
设置

现在还不清楚该推荐什么,因为没有“wasMQ”这样的东西。有WebSphereApplicationServer(WAS)和WebSphereMQ(WMQ)。曾与WMQ捆绑销售,但这两种产品并非单一产品

假设您指的是WebSphere MQ,而不是与WMQ对话的WebSphere App Server,我强烈建议使用现代版本。WMQ v7.0的生命周期已经结束,它缺少v7.1及更高版本的身份验证功能。从v8.0开始,WMQ甚至可以验证用户ID和密码

为了在WMQ中进行身份验证和应用粒度授权,您需要在通道的
MCAUSER
中使用除“mqm”以外的一些值。标准建议是将
RCVR
RQSTR
CLUSRCVR
SVRCONN
类型的所有频道的
MCAUSER
设置为
*NOBODY
,然后根据有用的内容(如证书的可分辨名称)安排对频道进行身份验证。验证连接的其他不太有用的方法(因为这些方法很难称为“身份验证”)包括查看入站连接的IP地址或在
SVRCONN
上声明的身份

在v7.0中,它们需要一个出口,并且是全球WMQ安装基础中使用的标准。在v7.1和v7.5中,您可以通过使用标准
MQSC
脚本配置
CHLAUTH
规则来实现相同的功能


页面上有几个会议演示,讨论如何在上完成此操作。我强烈建议迁移到WMQ的v7.5版,尤其是作为一名开发人员,无论运行QMgr的公司购买的许可证的状态如何。但是,如果正在维护,生产中的QMgr也可以免费升级到v7.5。如果你等到六月份,你就可以拥有v8.0了,尽管据我所知,免费开发者版本的发布还没有宣布

我花了很长时间来解决这个问题,而且我还阅读了演示文稿,尤其是一篇。最后,我选择了定义
CHLAUTH
的解决方案,以检查
IP
要通过它连接到我的频道

我将下面的
CHLAUTH
添加到我的队列管理器中,它可以正常工作

SET CHLAUTH('SVRCONN') TYPE(BLOCKUSER) USERLIST('ALLOWANY') WARN(YES) ACTION(ADD)
SET CHLAUTH('SVRCONN') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(NOACCESS)
SET CHLAUTH('SVRCONN') TYPE(ADDRESSMAP) ADDRESS('192.168.148.40-60') MCAUSER('mqm')

我也建议你去看看。

谢谢你,罗布。我使用的是WAS MQ 7.0.1.8。实际上,没有完成代码和原因代码或任何异常。问题是我有两个队列(Q1、Q2);有一个应用程序希望从Q1获取消息,执行一些操作并将结果放入Q2。我可以使用MCA用户ID来执行此操作吗。我想做一些类似身份验证的事情。对不起,我把你的问题倒过来看了。我想你是说
mqm
ID被阻止了,而不是说它正在通过。请看下面的答案。谢谢T。罗布。在v7.5中,我如何希望其他应用程序连接到我的QMGR设置用户名和密码?这有可能吗?WMQ v8.0将于6月推出,这是可能的。WMQ的旧版本需要通道安全出口来验证密码。Capitalware出售这样一个出口,或者可以写一个出口,尽管不推荐。编写一个C代码的问题是,它需要系统级的、递归的、可重入的、线程安全的C代码。大多数商店内部没有这种技能,或者愿意为一个组件在内部保持这种技能。这给我带来了大量的咨询工作,也给客户带来了大量的停机。因此,请等待v8.0,使用证书,或致电Capitalware。感谢您的回复。但还有一个问题。我有一个qmgr QM1和本地队列Q1和Q2。存在MCA设置为mqm的SVRCONN通道。有多个应用程序连接到我的QMGR,例如APP1和App2。我希望App1仅具有PUT权限,这意味着仅将消息放入Q1或Q2,App2仅具有GET权限,仅从Q1或Q2获取消息。每个唯一的授权集都需要附加到一个组。然后,当应用程序连接时,它需要作为相应组中的用户ID进行连接。(请记住,访问请求始终解析为特定主体,但授权附加到组。)一旦有了app1和app2的组,则需要安排运行通道的MCAUSER是相应组中的用户ID。您可以通过在每个通道中使用硬编码MCAUSER的不同通道来实现此目的,或者根据CHLAUTH规则动态设置MCAUSER。谢谢@T.Rob。我在这里问了这个问题:。我将为每个应用程序定义2个通道,并为它们定义2个组。