적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric의 SQL 분석 엔드포인트
Microsoft Fabric의 웨어하우스
Microsoft Fabric 미리 보기의 SQL 데이터베이스
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.server_principals 카탈로그 뷰를 sys.sql_logins 참조하세요.
server_user_sid가 지정되지 않은 경우 현재 사용자에 대한 정보가 반환됩니다. 매개 변수에 단어가 NULL포함되어 있으면 .를 SUSER_SNAME 반환합니다 NULL.
server_user_sid Azure SQL Database 또는 Microsoft Fabric Preview의 SQL 데이터베이스에서 지원되지 않습니다.
반환 형식
nvarchar(128)
설명
SUSER_SNAME또는 .에서 ALTER TABLECREATE TABLE제약 조건으로 DEFAULT 사용할 수 있습니다.
SUSER_SNAME 는 선택 목록, WHERE 절 및 식이 허용되는 모든 위치에서 사용할 수 있습니다.
SUSER_SNAME은 매개 변수를 지정하지 않더라도 항상 뒤에 괄호를 필요로 합니다.
인수 없이 호출하면 SUSER_SNAME이 현재 보안 컨텍스트의 이름을 반환합니다. 사용하여 EXECUTE ASSUSER_SNAME 컨텍스트를 전환한 일괄 처리 내에서 인수 없이 호출되는 경우 가장된 컨텍스트의 이름을 반환합니다. 가장된 컨텍스트에서 호출된 경우 ORIGINAL_LOGIN은 원래 컨텍스트의 이름을 반환합니다.
Azure SQL Database, Fabric의 SQL 데이터베이스에 대한 설명
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 사용
다음 예제에서는 문에서 CREATE TABLE 제약 조건으로 DEFAULT 사용합니다SUSER_SNAME.
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