Export (0) Print
Expand All
Expand Minimize

USER_NAME (Transact-SQL)

Returns a database user name from a specified identification number.

Topic link icon Transact-SQL Syntax Conventions


USER_NAME ( [ id ] )

id

Is the identification number associated with a database user. id is int. The parentheses are required.

nvarchar(128)

When id is omitted, the current user in the current context is assumed. When USER_NAME is called without specifying an id after an EXECUTE AS statement, USER_NAME returns the name of the impersonated user. If a Windows principal accesses the database by way of membership in a group, USER_NAME returns the name of the Windows principal instead of the group.

A. Using USER_NAME

The following example returns the username for user ID 13.

SELECT USER_NAME(13);
GO

B. Using USER_NAME without an ID

The following example finds the name of the current user without specifying an ID.

SELECT USER_NAME();
GO

Here is the result set for a user that is a member of the sysadmin fixed server role.

------------------------------ 
dbo                            

(1 row(s) affected)

C. Using USER_NAME in the WHERE clause

The following example finds the row in sysusers in which the name is equal to the result of applying the system function USER_NAME to user identification number 1.

SELECT name FROM sysusers WHERE name = USER_NAME(1);
GO

Here is the result set.

name                           
------------------------------ 
dbo                            

(1 row(s) affected)

D. Calling USER_NAME during impersonation with EXECUTE AS

The following example shows how USER_NAME behaves during impersonation.

SELECT USER_NAME();
GO
EXECUTE AS USER = 'Zelig';
GO
SELECT USER_NAME();
GO
REVERT;
GO
SELECT USER_NAME();
GO

Here is the result set.

DBO
Zelig
DBO
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft