Использование qsys2.qcmdexc, но смена пользователя

У меня есть внутренний веб-сайт, на котором я пытаюсь использовать существующий код RPG/CL с сервера iSeries. Я хотел бы время от времени запускать задания iSeries от имени вошедшего в систему пользователя. Однако соединение с iSeries, которое я использую, выполняется под именем пользователя, таким как «appuser», специально настроенным для приложения (которое имеет доступ только для чтения ODBC) через соединение SQL. Проблема, с которой я сталкиваюсь, заключается в том, что большая часть безопасности/регистрации, которая происходит в iSeries, использует пользователя задания для штамповки записей повсюду, и этот пользователь является именем приложения, а не пользователем, вошедшим в него.

Я могу заставить команды работать с помощью qsys2.qcmdexc, но мне нужен способ переключить пользователя на соответствующего «реального пользователя» из iSeries (у меня есть его имя пользователя в веб-приложении). Единственная идея, которая пришла мне в голову, - это иметь программу CL, которая выполняет задание отправки командной строки и передает реального пользователя в качестве пользователя.

Есть ли какие-либо лучшие варианты для изменения пользователя для работы, чтобы я мог запускать вещи в интерактивном режиме через соединение SQL? Или мне лучше всего выполнить задание на отправку?


person clutton    schedule 06.03.2015    source источник
comment
Лучше всего, вероятно, было бы изменить функцию ведения журнала, чтобы использовать currentUser, а не applicationName (или jobUser). Игнорировать currentUser, если это действительно security logging, не лучший выбор.   -  person user2338816    schedule 07.03.2015
comment
Это относительно большой готовый программный пакет, поэтому я бы не хотел модифицировать так много программного обеспечения... он использует структуру SDS (пользователь/терминал), и ведение журнала на самом деле просто такие вещи, как измененный/созданный пользователь в записях, но для отслеживать вещи полезно.   -  person clutton    schedule 07.03.2015
comment
Должна быть только одна функция (возможно, вызываемая из многих мест), но вы мало что можете сделать, если пакет не является рациональным.   -  person user2338816    schedule 07.03.2015


Ответы (1)


Вот статья Шеннона О'Доннела с программой, которая может поменять профиль пользователя. Я использовал его с успехом:

http://www.itjungle.com/mpo/mpo071703-story02.html

person bvstone    schedule 06.03.2015
comment
Необходимо провести некоторое тестирование, чтобы убедиться, что обмен профилями не мешает обмену, который уже происходит на сервере базы данных и (возможно) в существующем приложении при подключении. - person user2338816; 07.03.2015
comment
Это выглядит интересно, я заметил, что похоже, что он работает с паролем длиной 10, который не превышает 128 длины пароля уровня 2. Я посмотрю на это немного больше, возможно, я смогу его адаптировать. - person clutton; 09.03.2015
comment
Вы видели дату в статье, а также используемые API, верно? Почему бы не адаптировать их и не опубликовать обновленный код? - person bvstone; 10.03.2015
comment
@clutton Проверьте более актуальную документацию. API отлично обрабатывает 128-символьные фразы-пароли, но в то же время он неизбежно стал более сложным. - person user2338816; 12.03.2015