Есть несколько способов думать о текущем пользователе. Это зависит от того, как вы используете Advantage.
Вывод sp_mgGetConnectedUsers дает следующее:
Имя пользователя - имя компьютера
Пользователь словаря - пользователь, используемый для входа в словарь ADS
Адрес - IP, IPX или IPC адрес
OSUserLoginName - имя для входа в клиентскую ОС
TS Address - IP-адрес конечного пользователя с адресом клиента.
ApplicationID - уникально настраиваемый идентификатор по умолчанию = exe name
Если вы используете словарь, и каждый человек соединяет словарь с уникальным именем, тогда пользователь словаря будет подходить (вы также можете получить это, выбрав «select user () из system.iota» (или) для сценариев SQL). так далее). Address и UserName будут IP-адресом пользователя и именем компьютера пользователя. Это также должно помочь вам однозначно идентифицировать пользователя. Если ваши пользователи заходят через Терминальный сервер, вы можете использовать Адрес TS, чтобы идентифицировать их в сочетании с OSUserLoginName.
Я не буду вдаваться в подробности по ApplicationID, так как вы специально заявили, что вам не важно это решение. Но ... Хотя вы можете установить это значение как угодно, по умолчанию используется имя приложения (т.е. ARC.exe)
Часть B вашего вопроса - как связать запрос. Процедура sp_getsqlstatements вернет текущие активные запросы (или вы можете использовать информацию об удаленном сервере в ARC). Это возвращает имя соединения, которое совпадает с именем пользователя из sp_mgGetConnectedUsers. Используя эту комбинацию, вы можете указать имя компьютера, IP-адрес (или адрес терминала), имя пользователя в словаре, имя пользователя ОС клиента и имя приложения.