Skip to content

Latest commit

 

History

History
164 lines (127 loc) · 5.18 KB

File metadata and controls

164 lines (127 loc) · 5.18 KB
title USER_NAME (Transact-SQL)
description USER_NAME (Transact-SQL)
author VanMSFT
ms.author vanto
ms.reviewer
ms.date 03/06/2017
ms.prod sql
ms.prod_service database-engine, sql-database, synapse-analytics, pdw
ms.technology t-sql
ms.topic reference
ms.custom
f1_keywords
USER_NAME
USER_NAME_TSQL
helpviewer_keywords
usernames [SQL Server]
IDs [SQL Server], databases
USER_NAME function
users [SQL Server], database username
names [SQL Server], database users
identification numbers [SQL Server], databases
database usernames [SQL Server]
dev_langs
TSQL
monikerRange >= aps-pdw-2016 || = azuresqldb-current || = azure-sqldw-latest || >= sql-server-2016 || >= sql-server-linux-2017 || = azuresqldb-mi-current

USER_NAME (Transact-SQL)

[!INCLUDE sql-asdb-asdbmi-asa-pdw]

Returns a database user name from a specified identification number.

Article link icon Transact-SQL Syntax Conventions

Syntax

USER_NAME ( [ id ] )  

[!INCLUDEsql-server-tsql-previous-offline-documentation]

Arguments

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

Return Types

nvarchar(128)

Remarks

When id is omitted, the current user in the current context is assumed. If the parameter contains the word NULL will return NULL. 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.

Note

Although the USER_NAME function is supported on Azure SQL Database, using Execute as with USER_NAME is not supported on Azure SQL Database.

Examples

A. Using USER_NAME

The following example returns the user name 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  

[!INCLUDEssResult]

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  

[!INCLUDEssResult]

DBO  
Zelig  
DBO

Examples: [!INCLUDEssSDWfull] and [!INCLUDEssPDW]

E. Using USER_NAME without an ID

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

SELECT USER_NAME();  

Here is the result set for a currently logged-in user.

------------------------------   
User7                              

F. 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);  

[!INCLUDEssResult]

name                             
------------------------------   
User7                              

See Also

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SESSION_USER (Transact-SQL)
System Functions (Transact-SQL)
SYSTEM_USER (Transact-SQL)