다음을 통해 공유


SETUSER(Transact-SQL)

적용 대상: SQL Server Azure SQL Managed Instance

sysadmin 고정 서버 역할 또는 데이터베이스 소유자가 다른 사용자로 가장할 수 있도록 합니다.

중요

SETUSER는 이전 버전과의 호환성을 위해 포함되었습니다. SETUSER는 SQL Server의 향후 릴리스에서 지원되지 않을 수 있습니다. 대신 EXECUTE AS를 사용하는 것이 좋습니다.

Transact-SQL 구문 표기 규칙

구문

  
SETUSER [ 'username' [ WITH NORESET ] ]   

인수

' username '
가장된 현재 데이터베이스 내의 SQL Server 또는 Windows 사용자 이름입니다. username을 지정하지 않으면 사용자 ID를 시스템 관리자 또는 사용자를 가장한 데이터베이스 소유자의 원래 ID로 다시 설정합니다.

WITH NORESET
username을 지정하지 않은 이후의 SETUSER 문이 사용자 ID를 시스템 관리자 또는 데이터베이스 소유자로 다시 설정하지 않도록 지정합니다.

설명

sysadmin 고정 서버 역할 또는 데이터베이스 소유자 고정 데이터베이스 역할의 멤버는 SETUSER를 사용하여 다른 사용자로 가장하고, 해당 사용자의 사용 권한을 테스트할 수 있습니다. db_owner 고정 데이터베이스 역할의 멤버 자격으로는 충분하지 않습니다.

SETUSER는 SQL Server 사용자에만 사용하세요. Windows 사용자에는 SETUSER가 지원되지 않습니다. 다른 사용자의 ID를 가장하기 위해 SETUSER를 사용할 때 가장한 사용자가 만든 개체는 가장된 사용자가 소유합니다. 예를 들어 데이터베이스 소유자가 Margaret라는 사용자로 가장하여 orders라는 테이블을 만들면 orders 테이블의 소유자는 데이터베이스 소유자가 아니라 Margaret가 됩니다.

SETUSER는 다른 SETUSER 문을 지정할 때까지 또는 현재 데이터베이스가 USE 문을 통해 변경될 때까지 유효합니다.

참고

SETUSER WITH NORESET을 사용한 경우, 데이터베이스 소유자 또는 시스템 관리자는 로그오프한 후 다시 로그인해야 원래의 권한을 다시 얻을 수 있습니다.

사용 권한

sysadmin 고정 서버 역할의 멤버이거나 데이터베이스의 소유자여야 합니다. db_owner 고정 데이터베이스 역할의 멤버 자격이 필요합니다.

예제

다음 예에서는 데이터베이스 소유자가 다른 소유자 ID로 가장하는 방법을 보여 줍니다. 사용자 marycomputer_types라는 테이블을 만듭니다. 데이터베이스 소유자는 SETUSER를 사용하여 mary로 가장한 다음 사용자 joe에게 computer_types 테이블에 대한 액세스 권한을 부여하고 다시 원래 ID로 돌아옵니다.

SETUSER 'mary';  
GO  
GRANT SELECT ON computer_types TO joe;  
GO  
--To revert to the original user  
SETUSER;  

참고 항목

DENY(Transact-SQL)
GRANT(Transact-SQL)
REVOKE(Transact-SQL)
USE(Transact-SQL)