Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не могу узнать кто присоединился к БД на сервере.  [new]
ValGer
Member

Откуда: Псков
Сообщений: 468
Или туплю или что-то делаю не так.

Суть такая: SQL 2008 R2 в локальной доменной сети на сервере домена. На нём - БД, к которой подключаются пользователи с рабочих станций сети. Идентификация Windows. Для каждого пользователя в разделе "Безопасность\Имена входа" создано имя входа типа POIPKRO\m25, POIPKRO\m38 и т.д. (POIPKRO - имя домена). На основе этих имён входа созданы имена пользователей БД.
Всё работает нормально и никаких проблем не возникало, пока мне не захотелось читать имя пользователя, подсоединившегося к БД.
Создал хранимую процедуру из трёх операторов:
DECLARE @currentUser nvarchar(50)

SET @currentUser = Current_User

RETURN @currentUser

Выполняю её и для любого пользователя, с любой станции получаю, ответ - "dbo"!!?
А dbo у меня схема БД, и в пользователях он неубиваемый стоит (см. рисунок).
Что бы это значило?

Привожу на всякий случай строку соединения:
Data Source="SERVER1\POIPKRO2012, 49280";Initial Catalog=POIPKRO_NEW;Integrated Security=True;User Instance=False

К сообщению приложен файл. Размер - 111Kb
15 янв 13, 12:13    [13771180]     Ответить | Цитировать Сообщить модератору
 Re: Не могу узнать кто присоединился к БД на сервере.  [new]
Glory
Member

Откуда:
Сообщений: 104760
ValGer
Выполняю её и для любого пользователя, с любой станции получаю, ответ - "dbo"!!?
А dbo у меня схема БД, и в пользователях он неубиваемый стоит (см. рисунок).
Что бы это значило?

То, что все пользователи у вас имеют роль system administrator .
Или db_owner
15 янв 13, 12:21    [13771253]     Ответить | Цитировать Сообщить модератору
 Re: Не могу узнать кто присоединился к БД на сервере.  [new]
Glory
Member

Откуда:
Сообщений: 104760
Кроме того не мешало бы почитать про тип данных, который умеет возвращать RETURN в хранимых процедурах
15 янв 13, 12:23    [13771260]     Ответить | Цитировать Сообщить модератору
 Re: Не могу узнать кто присоединился к БД на сервере.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
ValGer
Всё работает нормально и никаких проблем не возникало, пока мне не захотелось читать имя пользователя, подсоединившегося к БД.
Вам наверное нужн оузнать имя логина, а не пользователя?

Тогда используйне SUSER_NAME() вместо Current_User
15 янв 13, 12:29    [13771317]     Ответить | Цитировать Сообщить модератору
 Re: Не могу узнать кто присоединился к БД на сервере.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
ValGer,

select suser_name()


select session_id, host_name, login_name, original_login_name
from sys.dm_exec_sessions
15 янв 13, 12:30    [13771328]     Ответить | Цитировать Сообщить модератору
 Re: Не могу узнать кто присоединился к БД на сервере.  [new]
ValGer
Member

Откуда: Псков
Сообщений: 468
Спассссибо всем!

Помогло!
15 янв 13, 14:25    [13772328]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить