Как добраться, Windows Log-in User Name для SQL Входят в систему Пользователь

Не могли бы вы опубликовать объект, который вы пытаетесь сериализовать, в json? Кажется, что объект (или некоторый объект в вашем графе объектов) содержит поле BufferedReader. это правильно?

Возможно, вы захотите аннотировать это поле (или метод getter) с помощью @JsonIgnore, чтобы Джексон проигнорировал его, или добавьте эту аннотацию к той части графа объекта, которая содержит BufferedReader.

Пожалуйста, дайте мне знать, как это работает, если вы попробуете. Удачи!

:)

12
задан David.Chu.ca 15 March 2009 в 17:14
поделиться

4 ответа

Нет никакой ссылки между входом в систему SQL и именем пользователя NT.

Вы спросили подобный здесь: Как узнать, что имя пользователя и машина называют к доступу к SQL-серверу

Подход WMI будет неоднозначен, если больше чем 1 пользователь будет зарегистрирован в клиент ПК (например, сервисные учетные записи, удаленный пользователь через mstsc и т.д.). Любой подход как это потребует прав администратора на клиенте ПК также для используемой учетной записи.

Я сомневаюсь, что можно сделать это в режиме реального времени.

Все, что можно сделать, записать client_net_address в sys.dm_exec_connections и отслеживание в обратном порядке оттуда, возможно, через WMI, но не от самого SQL Server.

Вам нужно имя пользователя хотя? Или просто клиент ПК, таким образом, можно поменять струну соединения приложения?

Вы конечное решение состоит в том, чтобы изменить пароль sa и видеть, кто звонит, если у Вас только есть относительно немного соединений SQL

4
ответ дан 2 December 2019 в 06:10
поделиться

Я не знаю, существует ли способ сделать точно, что Вы спрашиваете. Однако то, что я сделал в прошлом, является профилировщиком SQL использования и включало "Имя хоста" в столбцы результата. Названия машины, где я работаю, оказывается, уникальны и могут быть прослежены назад пользователю. Если Ваши имена машины уникальны также, это может получить результат, в котором Вы нуждаетесь. Можно отфильтровать на имени для входа в систему = sa для сужения результатов.

0
ответ дан 2 December 2019 в 06:10
поделиться

Я стреляю в темноте, но возможно мои мысли помогут Вам найти свой ответ. Из того, что я могу сказать, что нет никакого прямого способа получить это. Который, по моему скромному мнению, является хорошей вещью. Теперь пара мыслей:

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

У Ваших клиентов только есть зарегистрированный пользователь сингла в любой момент времени? Например, настольное приложение? Вы могли использовать WMI как таковой. Если снова это - сервер, и Вы хотите знать, чей контекст защиты его выполнение под Вами могло бы все еще смочь получить эту информацию. Иначе Вы могли в наименьшем количестве фигуры, кто запустил процесс.

SQL Profiler знает PID клиентского процесса. Но я не мог найти, где это хранится в SQL. Если можно найти, как можно получить PID (Вы могли просто выполнить трассировку программно и сохранить событие входа в систему к таблице). Можно получить запускающегося пользователя, использующего этот сценарий.

0
ответ дан 2 December 2019 в 06:10
поделиться

Хорошо. Я пытался использовать класс WMI для получения информации удаленного компьютера (класс \fullmancinename\roor\cimc2 WMI и объектный выбор запроса * от Win32_ComputerSystem). Это работает в моем локальном компьютере, но с названием удаленного компьютера, Вы должны передать имя пользователя и пароль с достаточным правом доступа получить доступ или читать. Это - другая проблема безопасности Windows для контакта с получить имя пользователя от удаленного компьютера.

Мои коды попытки основаны на ссылочном Windows Logon User Name Чтения C# в WMI.

0
ответ дан 2 December 2019 в 06:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: