Я стреляю в темноте, но, может быть, мои мысли помогут тебе найти ответ. Из того, что я могу сказать, нет прямого способа получить это. Который ИМХО это хорошая вещь. Теперь пара мыслей:
Если это пользовательское приложение, возможно, вы можете включить эту информацию в строку подключения в качестве имени приложения. Если это серверное приложение и вы используете олицетворение, вы потеряете возможность создавать пулы соединений, если вы это сделаете. В клиентском приложении это не должно быть проблемой.
У ваших клиентов есть только один зарегистрированный пользователь? Например, настольное приложение? Вы можете использовать WMI как таковой . Если снова это сервер, и вы хотите знать, чей контекст безопасности работает под ним, вы все равно сможете получить эту информацию. В противном случае вы могли бы по крайней мере выяснить, кто запустил процесс.
SQL Profiler знает PID клиентского процесса. Но я не мог найти, где он хранится в SQL. Если вы можете найти, как вы можете получить PID (Вы можете просто запустить трассировку программно и сохранить событие входа в таблицу). Вы можете получить запускающего пользователя, используя этот скрипт .