USER_NAME(Transact-SQL)

적용 대상: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

지정된 ID 번호에서 데이터베이스 사용자 이름을 반환합니다.

Transact-SQL 구문 규칙

구문

USER_NAME ( [ id ] )  

참고

SQL Server 2014 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.

인수

id
데이터베이스 사용자와 연결된 ID 번호입니다. idint입니다. 괄호가 필요합니다.

반환 형식

nvarchar(128)

설명

id를 생략하면 현재 컨텍스트의 현재 사용자로 가정하여 지정됩니다. 매개 변수에 NULL이라는 단어가 포함되어 있으면 NULL이 반환됩니다. EXECUTE AS 문 다음에 id를 지정하지 않고 USER_NAME을 호출하면 USER_NAME은 가장된 사용자의 이름을 반환합니다. Windows 보안 주체가 그룹 멤버 자격으로 데이터베이스에 액세스하는 경우 USER_NAME은 그룹 이름 대신 Windows 보안 주체의 이름을 반환합니다.

참고

USER_NAME 함수는 Azure SQL Database에서 지원되지만, Azure SQL Database에서 USER_NAME과 함께 Execute as를 사용할 수는 없습니다.

예제

A. USER_NAME 사용

다음 예에서는 사용자 ID 13에 대한 사용자 이름을 반환합니다.

SELECT USER_NAME(13);  
GO  

B. ID 없이 USER_NAME 사용

다음 예에서는 ID를 지정하지 않고 현재 사용자의 이름을 찾습니다.

SELECT USER_NAME();  
GO  

sysadmin 고정 서버 역할의 멤버인 사용자의 경우 결과 집합은 다음과 같습니다.

------------------------------  
dbo  
 
(1 row(s) affected)

C. WHERE 절에서 USER_NAME 사용

다음 예에서는 sysusers에서 USER_NAME 시스템 함수를 사용자 ID 번호 1에 적용하는 결과와 이름이 동일한 행을 찾습니다.

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

결과 집합은 다음과 같습니다.

name  
------------------------------  
dbo  
 
(1 row(s) affected)

D. EXECUTE AS로 가장하는 동안 USER_NAME 호출

다음 예에서는 가장이 진행되는 동안의 USER_NAME 작동 방식을 보여 줍니다.

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

결과 집합은 다음과 같습니다.

DBO  
Zelig  
DBO

예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)

E. ID 없이 USER_NAME 사용

다음 예에서는 ID를 지정하지 않고 현재 사용자의 이름을 찾습니다.

SELECT USER_NAME();  

현재 로그인한 사용자에 대한 결과 집합입니다.

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

F. WHERE 절에서 USER_NAME 사용

다음 예에서는 sysusers에서 USER_NAME 시스템 함수를 사용자 ID 번호 1에 적용하는 결과와 이름이 동일한 행을 찾습니다.

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

결과 집합은 다음과 같습니다.

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

참고 항목

ALTER TABLE(Transact-SQL)
CREATE TABLE(Transact-SQL)
CURRENT_TIMESTAMP(Transact-SQL)
CURRENT_USER(Transact-SQL)
SESSION_USER(Transact-SQL)
시스템 함수(Transact-SQL)
SYSTEM_USER(Transact-SQL)