Если вы установили MCAUSER
в канале, это переопределяет любой идентификатор, представленный клиентом.Если вы все еще получаете 2035, то есть две возможности.Во-первых, идентификатор в MCAUSER
не был правильно авторизован с помощью команд setmqaut
.Второе (по крайней мере, для Windows) - это неправильный идентификатор.Например, если определение канала имеет MCAUSER(userx)
вместо MCAUSER('userx@domain')
, то вполне возможно, что представленный идентификатор не совпадает с идентификатором SID, который разрешает WMQ.Это может произойти, когда userx
определено на ноутбуке и на сервере WMQ.Сервер должен быть в состоянии разрешить идентификатор, представленный для SID, который идет с ним.
Для WMQ v7.1 существуют дополнительные соображения относительно правил CHLAUTH.Если представленный идентификатор имеет права администратора, по умолчанию WMQ заблокирует его на всех каналах.Это связано с тем, что административный идентификатор имеет полный доступ к WMQ и может удаленно выполнять код на хост-сервере QMgr, используя сервисы WMQ или функции запуска.Поэтому, если у вас есть WMQ v7.1, вам нужно либо разрешить доступ администратора WMQ на желаемом канале, либо использовать неадминистративный идентификатор пользователя для подключения.
Наконец, самый простой способ отладить все это - включитьавторизуйте события на QMgr и установите SupportPac MS0P в WMQ Explorer.Это будет генерировать сообщение о событии каждый раз, когда появляется 2035, а затем плагин MS0P будет анализировать его в удобочитаемом формате.Сообщение сообщит вам ...
- Какой вызов API не выполнен.(
CONNECT
, OPEN
, CLOSE
) - Параметры, указанные в вызове API
- Идентификатор, вызывающий вызов API
- Объект, к которому относится APIбыл сделан звонок
Это может помочь определить, предоставили ли вы все необходимые разрешения.Например, классы Java и JMS будут запрашивать каждый объект, которого они касаются.Так они обнаруживают имя DLQ при подключении или имя BOQNAME при открытии очереди.Поэтому, если вы не указали +inq
в QMgr и очереди, вы получите 2035, и в сообщении о событии будет показан объект и использованные опции.Точно так же, если вы читаете подозрительное сообщение, и у ID нет прав на очередь отклонения или мертвую очередь, то вы получите 2035, который появляется (пока вы не посмотрите на сообщение о событии), который произошел в очереди, из которой вы имеетебыли счастливо потреблять сообщения.Поэтому обязательно включите события Auth и используйте MS0P.
Если вы хотите дружественное руководство по безопасности WMQ, есть несколько презентаций конференции, заархивированных здесь .