다음을 통해 공유


SUSER_SNAME(Transact-SQL)

SID(보안 ID)와 연결된 로그인 이름을 반환합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

SUSER_SNAME ( [ server_user_sid ] ) 

인수

  • server_user_sid
    로그인의 보안 ID입니다. server_user_sid는 선택 사항이며 varbinary(85)입니다. server_user_sid는 SQL Server 로그인 또는 Microsoft Windows 사용자 또는 그룹의 보안 ID일 수 있습니다. server_user_sid를 지정하지 않은 경우에는 현재 사용자에 대한 정보가 반환됩니다.

반환 형식

nvarchar(128)

주의

SUSER_SNAME을 ALTER TABLE 또는 CREATE TABLE에서 DEFAULT 제약 조건으로 사용할 수 있습니다. SUSER_SNAME은 SELECT 목록이나 WHERE 절, 그리고 식이 사용되는 모든 곳에 사용할 수 있습니다. 지정된 매개 변수가 없는 경우에도 SUSER_SNAME 다음에는 항상 괄호가 나와야 합니다.

인수 없이 SUSER_SNAME이 호출되면 현재 보안 컨텍스트의 이름이 반환됩니다. EXECUTE AS를 사용하여 컨텍스트를 전환한 일괄 처리 내에서 인수 없이 SUSER_SNAME이 호출되면 가장된 컨텍스트의 이름이 반환됩니다. 가장된 컨텍스트에서 SUSER_SNAME이 호출된 경우 ORIGINAL_LOGIN은 원래 컨텍스트의 이름을 반환합니다.

1. SUSER_SNAME 사용

다음 예에서는 0x01 값을 갖는 SID에 대한 로그인 이름을 반환합니다.

SELECT SUSER_SNAME(0x01);
GO

2. Windows 사용자의 SID로 SUSER_SNAME 사용

다음 예에서는 Windows SID와 연결된 로그인 이름을 반환합니다.

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO

3. DEFAULT 제약 조건으로 SUSER_SNAME 사용

다음 예에서는 SUSER_SNAME을 CREATE TABLE 문의 DEFAULT 제약 조건으로 사용합니다.

USE AdventureWorks;
GO
CREATE TABLE sname_example
(
login_sname sysname DEFAULT SUSER_SNAME(),
employee_id uniqueidentifier DEFAULT NEWID(),
login_date  datetime DEFAULT GETDATE()
) 
GO
INSERT sname_example DEFAULT VALUES
GO

4. SUSER_SNAME을 EXECUTE AS와 함께 호출

이 예에서는 SUSER_SNAME이 가장된 컨텍스트에서 호출된 경우의 동작을 보여 줍니다.

SELECT SUSER_SNAME();

GO

EXECUTE AS LOGIN = 'WanidaBenShoof';

SELECT SUSER_SNAME();

REVERT;

GO

SELECT SUSER_SNAME();

GO

결과는 다음과 같습니다.

sa

WanidaBenShoof

sa