적용 대상:SQL Server
Azure SQL Managed Instance
sysadmin 고정 서버 역할 또는 데이터베이스 소유자가 다른 사용자로 가장할 수 있도록 합니다.
중요
SETUSER 하위 호환성을 위해 포함되었습니다. SETUSER향후 SQL Server 버전에서는 지원되지 않을 수 있습니다. 대신 EXECUTE AS를 사용하는 것이 좋습니다.
구문
SETUSER [ 'username' [ WITH NORESET ] ]
인수
'username'
가장된 현재 데이터베이스 내의 SQL Server 또는 Windows 사용자 이름입니다.
username을 지정하지 않으면 사용자 ID를 시스템 관리자 또는 사용자를 가장한 데이터베이스 소유자의 원래 ID로 다시 설정합니다.
NORESET과 함께
명시된 사용자 이름 없이 후속 SETUSER 문장이 사용자 신원을 시스템 관리자나 데이터베이스 소유자로 초기화해서는 안 된다고 명시합니다.
설명
SETUSER 시스템 관리자 고정 서버 역할의 구성원이나 데이터베이스 소유자가 다른 사용자의 신원을 채택하여 그 사용자의 권한을 검사하는 데 사용할 수 있습니다. db_owner 고정 데이터베이스 역할의 멤버 자격으로는 충분하지 않습니다.
SQL Server 사용자와만 사용 SETUSER 하세요. SETUSER이 기능은 Windows 사용자에게는 지원되지 않습니다. 다른 사용자의 신원을 가장하는 데 사용된 경우 SETUSER , 사칭하는 사용자가 만든 모든 객체는 사칭 대상 사용자의 소유권을 갖게 됩니다. 예를 들어 데이터베이스 소유자가 Margaret라는 사용자로 가장하여 orders라는 테이블을 만들면 orders 테이블의 소유자는 데이터베이스 소유자가 아니라 Margaret가 됩니다.
SETUSER 다음 SETUSER 문장이 발행되거나 현재 데이터베이스가 USE 문장으로 변경될 때까지 계속 유효합니다.
참고
WITH NORESET을 사용할 경우 SETUSER , 데이터베이스 소유자나 시스템 관리자는 로그아웃했다가 다시 로그인하여 자신의 권한을 재설정해야 합니다.
사용 권한
sysadmin 고정 서버 역할의 멤버이거나 데이터베이스의 소유자여야 합니다. db_owner 고정 데이터베이스 역할의 멤버 자격이 필요합니다.
예제
다음 예에서는 데이터베이스 소유자가 다른 소유자 ID로 가장하는 방법을 보여 줍니다. 사용자 mary가 computer_types라는 테이블을 만듭니다. 데이터베이스 소유자는 를 사용하여 SETUSER사용자를 가칭 mary 하여 테이블에 대한 computer_types 사용자 joe 접근권을 부여한 후 자신의 신원을 초기화합니다.
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)