Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Имя текущего пользователя

6.0K
22 апреля 2009 года
Balda
79 / / 12.05.2008
Microsoft SQL Server 2005.
Есть триггер, к-й реагирует на вставку или изменение записей. Он записывает в специальную таблицу Log имя текущего пользователя:
 
Код:
INSERT INTO Log ([login], [date],[table_name],[record_id])

SELECT CURRENT_USER as [login], GETDATE() as [date],
'MyTable' as [table_name],
inserted.ID as [record_id]
FROM inserted


Но большая часть пользователей почему записывается туда не под своими логинами, а под именем dbo.
С чем это может быть связано? Может стоит использовать вместо CURRENT_USER какую-то другую стандартную переменную?
5
22 апреля 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: Balda
большая часть пользователей почему записывается туда не под своими логинами, а под именем dbo.
С чем это может быть связано? Может стоит использовать вместо CURRENT_USER какую-то другую стандартную переменную?


SQLServer достаточно шизофреничен в этом плане. У него имеется аж 4 функции/переменные для получения имени текущего пользователя (контекста безопасности): USER_NAME(), CURRENT_USER, SESSION_USER, SYSTEM_USER. Думаю в вашем случае должна помочь переменная SYSTEM_USER.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог