如何在SQL 2005中获取dbo的实际当前用户?

如何在SQL 2005中获取dbo的实际当前用户?,sql,sql-server,sql-server-2005,tsql,Sql,Sql Server,Sql Server 2005,Tsql,我有一个存储过程,它运行这个过程来创建一个新的票号: INSERT INTO [Test_DB42].[dbo].[TicketNumber] ([On], [By]) 价值观 (当前\u时间戳,当前\u用户) 当我与具有db_datareader和execute权限的用户一起运行时,我会获得我想要的Active Directory samAccountName值-该用户通过具有登录名的AD组获得访问权限 当我与具有sysadmin角色的用户一起运行时,它只会说“dbo”。此使用具有其广

我有一个存储过程,它运行这个过程来创建一个新的票号:

 INSERT INTO [Test_DB42].[dbo].[TicketNumber]
  ([On], [By])
价值观 (当前\u时间戳,当前\u用户)

当我与具有db_datareader和execute权限的用户一起运行时,我会获得我想要的Active Directory samAccountName值-该用户通过具有登录名的AD组获得访问权限

当我与具有sysadmin角色的用户一起运行时,它只会说“dbo”。此使用具有其广告帐户的显式登录


是否要更改此设置,或返回AD samAccountName或SQL登录名?

使用而不是当前用户

仅为了完整性。。。还有SUSER_NAME()函数和USER_NAME()函数。可能需要的是SUSER_SNAME(),但万一返回的不是正确的东西。