적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
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 Microsoft Fabric Azure SQL Database이나 SQL 데이터베이스에서는 지원되지 않습니다.
반환 형식
nvarchar(128)
설명
SUSER_SNAME또는 .에서 DEFAULTALTER TABLE제약 조건으로 CREATE TABLE 사용할 수 있습니다.
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. SUSER_SNAME를 제약 조건으로 DEFAULT 사용하세요
다음 예제에서는 문에서 SUSER_SNAME 제약 조건으로 DEFAULT 사용합니다CREATE TABLE.
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
E. SUSER_SNAME 사용
다음 예에서는 0x01 값을 갖는 SID에 대한 로그인 이름을 반환합니다.
SELECT SUSER_SNAME(0x01);
GO
F. 현재 로그인 반환
다음 예에서는 현재 로그인의 로그인 이름을 반환합니다.
SELECT SUSER_SNAME() AS CurrentLogin;
GO