USER_ID(Transact-SQL)
적용 대상: SQL Server
Azure SQL Database
Azure SQL Managed Instance
데이터베이스 사용자의 ID를 반환합니다.
Important
SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 DATABASE_PRINCIPAL_ID를 사용하세요.
Syntax
USER_ID ( [ 'user' ] )
참고 항목
SQL Server 2014(12.x) 이전 버전의 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)을 참조하세요.
예제
다음 예에서는 AdventureWorks2022
사용자인 Harold
의 ID를 반환합니다.
USE AdventureWorks2022;
SELECT USER_ID('Harold');
GO
참고 항목
USER_NAME(Transact-SQL)
sys.database_principals(Transact-SQL)
DATABASE_PRINCIPAL_ID(Transact-SQL)
보안 함수(Transact-SQL)