Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 MS SQL 2008 R2:USER_NAME(user_id) в другой базе  [new]
McCar
Member

Откуда: Саратов
Сообщений: 778
Вопрос наверно "чайниковый", но что то ответа быстро не нагуглил.. Подскажите пожалуйста.
Ситуация.
Хочу посмотреть какие запросы какими пользователями выполняются на сервере.
--кто что выполняет
SELECT USER_NAME(req.user_id), DB_NAME(req.database_id),   sqltext.TEXT,
 req.*
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext

С удивлением вижу запрос от себя в базе данных, где я и рядом стоять не должен.
Затем доходит - таблица sys.sysusers для каждой базы отличается, поэтому USER_NAME(req.user_id) в этом запросе показывает правильно только для запросов из той базы, в которой оно запускается.
А как правильно?
23 апр 14, 09:30    [15920328]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 R2:USER_NAME(user_id) в другой базе  [new]
Glory
Member

Откуда:
Сообщений: 104751
McCar
А как правильно?

Делать join с sys.sysusers нужной базы ???
23 апр 14, 09:33    [15920341]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 R2:USER_NAME(user_id) в другой базе  [new]
McCar
Member

Откуда: Саратов
Сообщений: 778
Glory
McCar
А как правильно?

Делать join с sys.sysusers нужной базы ???

Не очень представляю как это будет выглядеть..
Мы же не может применять конструкции с строковой конкатенацией
JOIN  USER_NAME(req.user_id)+".sys.sysusers".

Только городить всякие CASE WHEN по названию базы?
23 апр 14, 11:00    [15920880]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 R2:USER_NAME(user_id) в другой базе  [new]
Glory
Member

Откуда:
Сообщений: 104751
McCar
Только городить всякие CASE WHEN по названию базы?

Или кучу join-ов
23 апр 14, 11:05    [15920914]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 R2:USER_NAME(user_id) в другой базе  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8584
автор
Хочу посмотреть какие запросы какими пользователями выполняются на сервере.

Из спортивного интереса? Это не имеет практической ценности.
23 апр 14, 11:47    [15921241]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 R2:USER_NAME(user_id) в другой базе  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
+1
Зачем вам имя пользователя базы, вместо имени логина сервера?

Связываете с sys.dm_exec_sessions по session_id и получаете что вам надо.
23 апр 14, 23:51    [15926042]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить