다음을 통해 공유


sp_changedbowner(Transact-SQL)

적용 대상: SQL Server

현재 데이터베이스의 소유자를 변경합니다.

Important

SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 ALTER AUTHORIZATION를 사용합니다.

Transact-SQL 구문 표기 규칙

구문

sp_changedbowner
    [ @loginame = ] N'loginame'
    [ , [ @map = ] 'map' ]
[ ; ]

인수

[ @loginame = ] N'loginame'

현재 데이터베이스의 새 소유자의 로그인 ID입니다. @loginame 기본값이 없는 sysname입니다. @loginame 기존 SQL Server 로그인 또는 Windows 사용자여야 합니다. @loginame 데이터베이스 내의 기존 사용자 보안 계정을 통해 데이터베이스에 대한 액세스 권한이 이미 있는 경우 현재 데이터베이스의 소유자가 될 수 없습니다. 이 시나리오를 방지하려면 사용자를 현재 데이터베이스 내에 먼저 놓습니다.

[ @map = ] 'map'

이 매개 변수는 사용되지 않으며 스크립트의 이전 버전과의 호환성을 위해 유지 관리됩니다.

반환 코드 값

0(성공) 또는 1(실패).

설명

실행된 후 sp_changedbowner 새 소유자는 데이터베이스 내의 dbo 사용자라고 합니다. 사용자에게 데이터베이스 dbo 의 모든 활동을 수행할 수 있는 묵시적 권한이 있습니다.

또는 modeltempdb 시스템 데이터베이스의 master소유자는 변경할 수 없습니다.

유효한 @loginame 값 목록을 표시하려면 저장 프로시저를 sp_helplogins 실행합니다.

@loginame 매개 변수만 사용하여 실행하면 sp_changedbowner 데이터베이스 소유권이 @loginame 변경됩니다.

문을 사용하여 보안 개체의 소유자를 ALTER AUTHORIZATION 변경할 수 있습니다. 자세한 내용은 ALTER AUTHORIZATION를 참조 하세요.

사용 권한

데이터베이스에 대한 TAKE OWNERSHIP 권한이 필요합니다. 새 소유자에게 데이터베이스에 해당 사용자가 있는 경우 로그인에 대한 권한이 필요 IMPERSONATE 하고, 그렇지 않으면 서버에 대한 권한이 필요합니다 CONTROL SERVER .

예제

다음 예제에서는 로그인 Albert 을 현재 데이터베이스의 소유자로 만듭니다.

EXEC sp_changedbowner 'Albert';