2009-09-27 52 views
3

我有它運行它來創建一個新的票號的存儲過程:如何在SQL 2005中獲得dbo的實際CURRENT_USER?

INSERT INTO [Test_DB42].[dbo].[TicketNumber] 
    ([On], [By]) 

VALUES (CURRENT_TIMESTAMP,CURRENT_USER)

當我用的db_datareader的用戶運行和執行權限,我獲取我想要的Active Directory samAccountName值 - 此用戶通過具有Login的AD組獲得訪問權限。

當我與具有sysadmin角色的用戶一起運行時,它只是說'dbo'。這種使用有一個明確的登錄他們的AD帳戶。

有無論如何改變這一點,或返回AD samAccountName或SQL登錄名?

回答

7

使用SUSER_SNAME()而不是CURRENT_USER

+0

只是爲了完整性......還有還有功能SUSER_NAME()和USER_NAME()函數。它可能會被SUSER_SNAME()所要求,但如果這不會返回正確的結果。 – 2009-09-27 08:28:35

+0

謝謝。這正是我想要的。 – serialhobbyist 2009-09-27 09:33:01

相關問題