【问题标题】:How to disable authorizations in IBM MQ 7.0如何在 IBM MQ 7.0 中禁用授权
【发布时间】:2013-10-06 13:10:05
【问题描述】:

我们如何在 windows 平台上禁用 MQ 版本 7.0.1.3 的授权?

我知道在 7.0 版本中您可以禁用频道授权。但我找不到在 7.0.1.3 中禁用授权的方法。

【问题讨论】:

    标签: ibm-mq mq


    【解决方案1】:

    可以通过在 windows 和 UNIX 上设置环境变量 MQSNOAUT=yes 来禁用 7.0.1.3 上的授权。必须在创建队列管理器之前设置该变量,并且在队列管理器的生命周期中,无法重新启用授权。

    下面的链接详细解释了MQSNOAUT的使用:

    http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=%2Fcom.ibm.mq.amqzag.doc%2Ffa13260_.htm

    【讨论】:

    • 请注意,link-only answers are discouraged,SO 答案应该是搜索解决方案的终点(相对于另一个参考中途停留,随着时间的推移往往会变得陈旧)。请考虑在此处添加独立的概要,并保留链接作为参考。
    【解决方案2】:

    MQSC 命令ALTER QMGR CHLAUTH(DISABLED) 也会在 MQ v7.5 中禁用通道授权。

    顺便说一句:你确定 MQ 版本是 8.1 吗? MQ 的最后一个发布版本是 v7.5。

    编辑:

    MQ v7.1 中引入了通道授权功能。因此该功能在 MQ v701x 中不可用,因此无法禁用。

    【讨论】:

    • 更正了有问题的版本号。为不正确的问题道歉。
    • 问题是我的程序连接到 7.0.1.3 队列管理器返回错误 2035,即 MQRC_NOT_AUTORIZED。如果在 7.1 中引入了授权,什么可能导致 MQ 返回错误?
    • 这是因为您的客户端应用程序用于连接到远程 v7013 队列管理器的用户 ID 不存在或不属于运行 v7013 队列管理器的机器上的“mqm”组。跨度>
    • 好的,有没有办法取消授权或如何允许未知用户名?我在队列管理上启用了调试跟踪,看起来 mq 无法识别将消息放入队列的进程的用户。校长正在解析为一个在任何地方都不存在的数字“1717”。客户端和 MQ 都在同一台机器上。我假设 1717 可能类似于“未知”。有没有办法让这个未知用户将消息放入队列?顺便说一句,同一个进程能够从队列中读取消息。
    • 我对授权感到困惑的原因是,在队列管理器级别,我看到了使用 7.0.1.3 版中的 MQ 资源管理器设置对象权限、管理/创建权限和管理权限记录的选项。这些授权和渠道授权有区别吗?
    【解决方案3】:

    根据您的评论,您收到 2035 错误,这使您认为通道身份验证已为您打开。

    正如 Shashi 所解释的,CHLAUTH 仅来自 MQ7.1 及更高版本,其实际目的是默认阻止所有通过 SVRCONN 通道的管理员访问(所有 System.* 通道都被阻止)。

    查看here了解更多详情。

    但是,user authentication was always there

    检查您尝试连接的用户 ID。

    用户 ID 必须有权访问 MQ 对象。换句话说,用户 id 必须添加到可以访问 MQ 对象的 user-group 中。例如,添加到 "mqm" 组的用户 ID 将拥有 MQ 对象的管理员权限。

    在用户组中添加用户 ID 的步骤因操作系统而异。在问题中提及您的操作系统。

    另外,您可以尝试使用 setmqaut 命令向您的用户授予权限。 Here是命令的用法。

    【讨论】:

    • 我的 dspmqver 的输出是:名称:Websphere MQ,版本:7.0.1.3,CMVC 级别:p701-103-100818,BuildType:IKAP -(生产)。我对此感到困惑的原因授权是在队列管理器级别,我看到使用 7.0.1.3 版中的 MQ 资源管理器设置对象权限、管理/创建权限和管理权限记录的选项。这些授权和渠道授权有区别吗?
    • 我尝试使用 setmqaut 命令设置授权。问题是向 MQ 发送消息的进程在没有凭据的情况下进行连接,或者至少 MQ 无法解析进程用户,导致 MQ 无法确定权限。有没有办法授权所有人或授权未知数?有问题的平台是 Windows server 2008。
    • 检查通道的 MCA USER 属性。尝试将其设置为“mqm”。您是否尝试通过客户端应用程序或 MQ 资源管理器进行连接?
    • 其实我有一个使用 MQAdapter 连接到 MQ 的 C++ tuxedo 应用程序。我将尝试将属性设置为上述。
    • 您的应用程序将发送一个用户 ID。很少有应用程序会发送您当前登录到机器的用户 ID。检查正在发送的用户 ID,并检查其是否有权访问 MQ 对象。
    【解决方案4】:

    检查了用户标识“xxxxx”及其密码,因为队列管理器连接授权 (CONNAUTH) 配置使用 CHCKLOCL(OPTIONAL) 引用名为“SYSTEM.DEFAULT.AUTHINFO.IDPWOS”的身份验证信息 (AUTHINFO) 对象。 &P 此消息伴随先前的错误以阐明用户 ID 和密码检查的原因。

    因此将身份验证信息中的 SYSTEM.DEFAULT.AUTHINFO.IDPWOS 和 SYSTEM.DEFAULT.AUTHINFO.IDPWLDAP 更改为具有用户名+密码 - “none”用于检查本地绑定连接,“none”用于检查客户端连接。

    注意:仅在重新启动队列管理器后才会反映更改。

    【讨论】:

    • Anand,请注意所问的问题是关于 MQ (7.0) 的特定版本。直到 MQ v8.0 才引入 CONNAUTH,因此您的答案不适用于这个问题。尝试搜索有关 CONNAUTH 和 DISABLE 的问题。有几个搜索结果是“[ibm-mq] CONNAUTH DISABLE”。此答案不适用于此问题,应删除。
    • 您可以通过选择答案文本下方的删除链接来删除您的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多