USER_ID(Transact-SQL)

적용 대상: SQL Server(지원되는 모든 버전) Azure SQL Database Azure SQL Managed Instance

데이터베이스 사용자의 ID를 반환합니다.

중요

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 DATABASE_PRINCIPAL_ID를 사용하세요.

Topic link iconTransact-SQL 구문 규칙

Syntax

USER_ID ( [ 'user' ] )  

참고

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

인수

user
사용할 사용자 이름입니다. 사용자nchar입니다. char 값을 지정하면 암시적으로 nchar로 변환됩니다. 괄호가 필요합니다.

반환 형식

int

설명

사용자를 생략하면 현재 사용자가 대신 사용됩니다. 매개 변수에 NULL이라는 단어가 포함되어 있으면 NULL이 반환됩니다. EXECUTE AS를 호출한 후 USER_ID를 호출하면 가장된 컨텍스트의 ID가 반환됩니다.

특정 데이터베이스 사용자에 매핑되지 않은 Windows 보안 주체가 그룹 멤버 자격으로 데이터베이스에 액세스하면 USER_ID가 0(public의 ID)을 반환합니다. 이러한 보안 주체가 스키마를 지정하지 않고 개체를 만들면 SQL Server에서 해당 Windows 보안 주체에 매핑되는 암시적 사용자와 스키마를 생성합니다. 이렇게 생성된 사용자는 데이터베이스 연결에 사용할 수 없습니다. 암시적 사용자에 매핑되는 Windows 보안 주체로 USER_ID를 호출하면 암시적 사용자의 ID가 반환됩니다.

USER_ID는 SELECT 목록, WHERE 절 및 식을 사용할 수 있는 곳이면 어디에서나 사용할 수 있습니다. 자세한 내용은 식(Transact-SQL)을 참조하세요.

예제

다음 예에서는 AdventureWorks2012 사용자인 Harold의 ID를 반환합니다.

USE AdventureWorks2012;  
SELECT USER_ID('Harold');  
GO  

참고 항목

USER_NAME(Transact-SQL)
sys.database_principals(Transact-SQL)
DATABASE_PRINCIPAL_ID(Transact-SQL)
보안 함수(Transact-SQL)