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
Имя текущего пользователя
Есть триггер, к-й реагирует на вставку или изменение записей. Он записывает в специальную таблицу Log имя текущего пользователя:
Код:
Но большая часть пользователей почему записывается туда не под своими логинами, а под именем dbo.
С чем это может быть связано? Может стоит использовать вместо CURRENT_USER какую-то другую стандартную переменную?
Цитата: Balda
большая часть пользователей почему записывается туда не под своими логинами, а под именем dbo.
С чем это может быть связано? Может стоит использовать вместо CURRENT_USER какую-то другую стандартную переменную?
С чем это может быть связано? Может стоит использовать вместо CURRENT_USER какую-то другую стандартную переменную?
SQLServer достаточно шизофреничен в этом плане. У него имеется аж 4 функции/переменные для получения имени текущего пользователя (контекста безопасности): USER_NAME(), CURRENT_USER, SESSION_USER, SYSTEM_USER. Думаю в вашем случае должна помочь переменная SYSTEM_USER.