Як отримати ім'я домен облікового запису в ms sql - stack overflow російською

Відповідь на ваше запитання - немає. Штатними засобами - ніяк.

Логіка така - сервер, це окрема ізольована сутність, яка знати не знає нічого про те, хто і під яким ім'ям працює на комп'ютері.

Грубо кажучи, для виконання запитів потрібно підключитися до сервера. Після підключення вся робота з сервером виконується від імені того користувача, який був підключений до сервера.

Сам сервер знає ім'я та пароль цього користувача, і не більше. Для того, що б сервер зміг вам видати ім'я користувача, який у вас залягання в операційній системі, MS SQL повинен вміти опитувати на цей рахунок операційну систему. Але навіщо це йому? Так що сервер не вміє опитувати вінду і дізнаватися який користувач там залягання, бо як це взагалі відноситься до функцій сервера і баз даних? Ніяк.

Але ось уже подальші розподілу прав на об'єкти всередині сервера забезпечуються самим сервером, незалежно від ролі облікового запису Windows.

Разом, отримуємо, що варіанти у нас вкрай обмежені:

Підключатися до БД через windows-аутентифікацію, тоді ім'я домену та облікового запису буде передано всередину сервера. Але це не завжди можливо.

Передавати серверу ім'я домену та користувача з клієнта самостійно (потрібно подумати, яким саме способом).

2а. Можна спробувати змушувати сервер самостійно, кожен раз при підключенні користувача виконувати якийсь зовнішній інструмент (програму), яка отримувала б ім'я користувача Windows, підключалася до сервера, і записувала б в окрему таблицю ім'я віндового користувача, який підключився до сервера.

Але п. 2 і 2а самі по собі мені здаються дуже незручними, громоздкіміі кривими милицями.

Схожі статті