Ошибка «2035» («MQRC_NOT_AUTHORIZED») при подключении к MQ

Я получаю эту ошибку при подключении к IBM MQ. Я знаю, что это из-за привилегий, но есть ли способ просто проверить соединение с IBM MQ?

Пожалуйста, предложите.


person Sreenath G V    schedule 24.02.2011    source источник


Ответы (7)


2035 предполагает, что ваше соединение попадает в QMgr. Если бы у вас было неправильное имя канала, хост или порт, вы бы получили ответ 2059. 2035 означает, что соединение установлено с прослушивателем, найден канал с запрошенным именем и предпринята попытка соединения.

Если вы хотите выполнить проверку после этого момента, необходимо будет либо авторизовать идентификатор, который вы используете для подключения, либо поместить авторизованный идентификатор в атрибут MCAUSER канала.

Подробное объяснение того, как защита WMQ работает на клиентских каналах, см. в презентации WMQ Base Hardening по адресу http://t-rob.net/links.

person T.Rob    schedule 26.02.2011
comment
МОЙ БОГ! Какая ужасная технота! Я свяжусь с IBM и посмотрю, смогу ли я заставить их исправить это. Обратите внимание, что указанный дефект связан с IBM FTM, а не с самим MQ. Мой совет состоял в том, чтобы правильно авторизовать пользователя, пытающегося подключиться. IBM должна отключить CONNAUTH. Поскольку CONNAUTH ужасно сломан, это хороший совет, но если кто-то последует ему, им все равно нужен идентификатор, который подключается, чтобы быть должным образом авторизованным в MQ. Спасибо за ссылку! - person T.Rob; 29.12.2017

Если вы включите сообщения авторизации, 2035 появится в очереди событий. Затем вы можете просмотреть сообщение и увидеть, какой идентификатор использовался для подключения и какие параметры также использовались. 2035 может быть связано с тем, что вы запросили права доступа к диспетчеру очередей или что-то еще, чего у вас не должно быть. Сообщения авторизации покажут вам это.

person mqrus    schedule 30.04.2011
comment
У вас есть ссылка, которая описывает, как это сделать? - person Nathan Lee; 23.08.2011

Вы также можете решить эту проблему, установив mcauser('mqm') .. я смог преодолеть ошибку 2035.

Define channel (channel1) chltype (svrconn) trptype (tcp) mcauser(‘mqm’)

Особая благодарность моему СТАРШЕМУ Билалу Ахмаду (PSE)

person Digital Alchemist    schedule 03.03.2014
comment
Предложение в этом ответе не подходит для использования. Вы бы предоставили приложению полное административное разрешение MQ, установив MCAUSER('mqm'). Также обратите внимание, что в MQ v7.1 и более поздних версиях правила CHLAUTH по умолчанию все равно блокируют работу этого соединения. - person JoshMc; 23.08.2017

Вы должны проверить привилегии у администратора MQ.

person DaeMoohn    schedule 24.02.2011

Я тоже боролся с этим целую вечность. В конце концов я нашел это решение. (Если вы можете назвать отключение аутентификации решением.)

Я использую версию - IBM Websphere 9.1.0.201807091223

На сайте IBM советуют отключить аутентификацию соединения!!!

Решение проблемы Отключить аутентификацию канала

Вам нужно будет отключить аутентификацию соединения, по крайней мере временно. В FTM for Check есть известные проблемы с использованием авторизации соединения MQ. Эти проблемы активно решаются, и исправления появятся в будущем пакете исправлений. Целью является пакет исправлений 3.0.0.8.

Действия по отключению аутентификации подключения: Откройте командную консоль MQ и введите runmqsc ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(NONE) CHCKLOCL(NONE) Перезапустите диспетчер очередей, чтобы это изменение вступило в силу.

Источник http://www-01.ibm.com/support/docview.wss?uid=swg21962081

person Matt    schedule 28.08.2018

Для Q/Q-менеджера, работающего в Windows, вам может потребоваться создать пользователя на машине с Q/Q-менеджером [т.е. создайте пользователя на машине Q, чтобы он соответствовал пользователю на машине Q-client], а затем добавьте этого пользователя в группу «mqm» на этой машине.

Шаги:

  1. Убедитесь, что пользователь домена, который используется для создания Q CLIENT [т.е. пользователь, под которым работает приложение Q-client] также существует на коробке с Q/Q-manager. Возможно, вы сможете просто создать локального пользователя в окне Q/Q-manager [или вам, возможно, придется сделать более сложное создание пользователя Active Directory — я не могу вам помочь].

  2. В окне Q/Q-manager добавьте только что созданного пользователя [или существующего, если он уже существует] в группу mqm. [На сервере Windows вам нужно будет использовать консоль управления Microsoft (1. 'mmc' из командной строки, 2. Файл > Добавить/удалить SnapOn > Локальные пользователи и группы, 3. добавить пользователя в группу)]. Группа 'mqm' уже должна существовать на машине Q/Q-manager.

person david.barkhuizen    schedule 19.07.2012
comment
Добавляя пользователя в группу mqm, вы предоставляете этому пользователю полные административные полномочия MQ, что не рекомендуется, приложению должно быть предоставлено минимальное разрешение, необходимое для выполнения его функции. Также обратите внимание, что в MQ v7.1 и более поздних версиях правила CHLAUTH по умолчанию блокируют работу подключений, которые разрешаются пользователям MQ Admin. - person JoshMc; 23.08.2017
comment
@JoshMc Какое же рекомендуемое разрешение? - person david.barkhuizen; 23.08.2017
comment
В Windows вы можете предоставить полномочия непосредственно пользователю. В unix до v8 вы могли добавить пользователя в группу, отличную от mqm, и предоставить полномочия этой группе. В v8 и более поздних версиях Unix вы можете установить SecurityPolicy=user в qm.ini и предоставить полномочия непосредственно пользователю. - person JoshMc; 23.08.2017

Вы можете использовать dspmqaut для проверки гранта. Ниже приведен пример предоставления пользователю poc доступа к Queue Manager QM1 и Queue LQ1.

 # check the access right of user POC to QM1
 dspmqaut -m QM1 -n LQ1 -t q -p poc

 # if you want to give access, you should use 
 setmqaut -m QM1 -n LQ1 -t q -p poc <access Types>
 # eg (put everything - in the real live scenario, choose only what you want to grant) :
 setmqaut -m QM1 -n LQ1 -t q -p poc +put +get +browse +inq +set +crt +dlt +chg +dsp +passid +setid +setall +clr 

Затем не забудьте перезапустить QM1 с помощью

  endmqm -i QM1
  strmqm QM1

Наконец, вы сможете продолжить работу без ошибки 2035.

person Rudy    schedule 05.12.2016
comment
После добавления новых правил OAM перезапуск администратора очередей не требуется. - person JoshMc; 23.08.2017
comment
Если вы не используете MQ в Windows или MQv8 или более поздней версии с SecurityPolicy=user в Unix/Linux, предоставление разрешения с флагом -p не рекомендуется. Это связано с тем, что в Unix/Linux до v8 и по умолчанию в v8 и более поздних версиях результирующее правило OAM фактически предоставляется основной группе пользователя, указанной, а не самому пользователю. Во многих ситуациях это усугубляется, например, если по умолчанию большое количество пользователей имеют одну и ту же основную группу (например, группа users). - person JoshMc; 23.08.2017