다음을 통해 공유


SUSER_SNAME(Transact-SQL)

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스

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

Transact-SQL 구문 표기 규칙

구문

SUSER_SNAME ( [ server_user_sid ] )

인수

server_user_sid

선택적 로그인 보안 식별 번호입니다. server_user_sidvarbinary(85)입니다. server_user_sid는 SQL Server 로그인 또는 Microsoft Windows 사용자 또는 그룹의 보안 ID일 수 있습니다. 열 내 sid 또는 sys.sql_logins 카탈로그 뷰를 sys.server_principals 참조하세요. server_user_sid가 지정되지 않은 경우 현재 사용자에 대한 정보가 반환됩니다. 매개 변수에 단어가 NULL포함되어 있으면 .를 SUSER_SNAME 반환합니다 NULL.

server_user_sid는 Azure SQL Database에서 지원되지 않습니다.

반환 형식

nvarchar(128)

설명

SUSER_SNAMEALTER TABLE 또는 CREATE TABLE에서 DEFAULT 제약 조건으로 사용할 수 있습니다. SUSER_SNAME은 SELECT 목록, WHERE 절 및 식을 사용할 수 있는 곳이면 어디에서나 사용할 수 있습니다. SUSER_SNAME은 매개 변수를 지정하지 않더라도 항상 뒤에 괄호를 필요로 합니다.

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

Azure SQL Database 설명

SUSER_SNAME은 항상 현재 보안 컨텍스트의 로그인 이름을 반환합니다.

SUSER_SNAME 문은 EXECUTE AS를 통해 가장된 보안 컨텍스트를 사용하는 실행을 지원하지 않습니다.

SUSER_SNAMEserver_user_id 인수를 지원하지 않습니다.

예제

A. SUSER_SNAME 사용

다음 예에서는 현재 보안 컨텍스트의 로그인 이름을 반환합니다.

SELECT SUSER_SNAME();
GO

B. Windows 사용자 보안 ID로 SUSER_SNAME 사용

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

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO

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

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

USE AdventureWorks2022;
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

D. 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

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

E. SUSER_SNAME 사용

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

SELECT SUSER_SNAME(0x01);
GO

F. 현재 로그인 반환

다음 예에서는 현재 로그인의 로그인 이름을 반환합니다.

SELECT SUSER_SNAME() AS CurrentLogin;
GO