SUSER_SNAME(Transact-SQL)
SID(보안 ID)와 연결된 로그인 이름을 반환합니다.
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 AdventureWorks2008R2; 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
