连接到我们的Websphere MQ 7.0服务器的客户端获取错误代码2035。
这是因为每个用户都使用自己的用户名连接。他们无法改变这种行为。将此作为解决方法进行修复非常简单。我只需要将用户名添加到mqm组(linux)及其工作。
问题是,我无法将所有用户添加到mqm组。这种情况一直在变化。
有没有办法让每个人都能连接和发送数据?
答案 0 :(得分:0)
如果忽略允许任何人访问MQ资源的安全隐患,则可以通过伪组“nobody”提供该权限。在Unix平台上,每个用户都被认为是该组的成员,即使它确实不存在。
所以
setmqaut -t qmgr -m QM1 -g nobody +connect
将授予所有用户连接权限。类似的事情可以使用通配符('**')来设置队列权限等。
答案 1 :(得分:0)
正如马克所说:
如果忽略允许任何人访问的安全隐患 MQ资源
我建议您学习如何正确地执行MQ安全性,因为它非常简单。您可以使用用户已在的组或创建新组,并仅向其添加特定的UserId。请不要在'mqm'组中放入非MQAdmin UserIds。安全性差,安全性很差。
假设您有一堆以'ABC'开头的队列,并且支持团队需要完全访问权限。您可以创建一个名为“abc_rw”的组(允许读/写)并将所有需要完全权限的UserId放入其中。因此,setmqaut命令将是:
setmqaut -m {QM_NAME} -t qmgr -g abc_rw +connect +inq +dsp
setmqaut -m {QM_NAME} -n ABC.** -t queue -g abc_rw +allmqi +dsp
其中{QM_NAME}是您的队列管理员的名称。
第1行设置组'abc_rw'访问队列管理器的权限。 第二行使组'abc_rw'能够访问以'ABC'开头的所有队列。
就是这样。它就这么简单。发出任何setmqaut命令后,请不要忘记发出REFRESH SECURITY命令。
现在,如果用户使用列出队列管理器队列的工具,那么您需要授予他们执行此操作的权限。再一次很容易。
setmqaut -m {QM_NAME} -n SYSTEM.ADMIN.COMMAND.QUEUE -t queue -g abc_rw +put +inq +dsp
setmqaut -m {QM_NAME} -n SYSTEM.DEFAULT.MODEL.QUEUE -t queue -g abc_rw +get +inq +dsp
第1行赋予组'abc_rw'权限,将消息放入命令队列,MQ工具执行该命令队列以请求队列列表。 第二行为组'abc_rw'提供访问权,以使用模型队列创建临时动态队列,MQ工具将从该队列中读取回复消息。