SQL Server provides a number of ways of getting information about the current user:
*
sp_who @@SPID
will give the user name and other session information about the current user session.
*
The database variable 'SYSTEM_USER' returns the domain and login name of the user IF windows authentication is used. However if current user is logged on using SQL Server Authentication then 'SYSTEM_USER' returns the SQL Server login identification name. For example:
print SYSTEM_USER
might yield 'PRO_BRAIN\Brian Cryer', if the user 'Brian Cryer' were logged on using NT authentication from a workstation called 'PRO_BRAIN' (note 'XP' allows spaces in the user name whilst NT does not)
or 'sa' if connected using the 'sa' account using SQL Server Authentication.
*
The database variable 'CURRENT_USER' (or 'SESSION_USER' - the two always give the same value) returns the database authorization name of the user that made the connection.
*
Other information can be found by interrogating the table 'master..sysprocesses' directly, for example:
select nt_username, hostname, nt_domain, loginame, login_time, program_name from master..sysprocesses where spid=@@SPID