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)와 연결된 로그인 이름을 반환합니다.
구문
SUSER_SNAME ( [ server_user_sid ] )
인수
server_user_sid
선택적 로그인 보안 식별 번호입니다. server_user_sid는 varbinary(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_SNAME
은 ALTER TABLE
또는 CREATE TABLE
에서 DEFAULT 제약 조건으로 사용할 수 있습니다. SUSER_SNAME
은 SELECT 목록, WHERE 절 및 식을 사용할 수 있는 곳이면 어디에서나 사용할 수 있습니다. SUSER_SNAME
은 매개 변수를 지정하지 않더라도 항상 뒤에 괄호를 필요로 합니다.
인수 없이 호출하면 SUSER_SNAME
이 현재 보안 컨텍스트의 이름을 반환합니다. 사용하여 EXECUTE AS
SUSER_SNAME
컨텍스트를 전환한 일괄 처리 내에서 인수 없이 호출되는 경우 가장된 컨텍스트의 이름을 반환합니다. 가장된 컨텍스트에서 호출된 경우 ORIGINAL_LOGIN
은 원래 컨텍스트의 이름을 반환합니다.
Azure SQL Database 설명
SUSER_SNAME
은 항상 현재 보안 컨텍스트의 로그인 이름을 반환합니다.
SUSER_SNAME
문은 EXECUTE AS를 통해 가장된 보안 컨텍스트를 사용하는 실행을 지원하지 않습니다.
SUSER_SNAME
은 server_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_SNAME
을 CREATE 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