sp_changedbowner(Transact-SQL)
현재 데이터베이스의 소유자를 변경합니다.
[!참고]
Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. 대신 ALTER AUTHORIZATION을 사용합니다.
구문
sp_changedbowner [ @loginame = ] 'login'
[ , [ @map = ] remap_alias_flag ]
인수
[ @loginame = ] 'login'
현재 데이터베이스의 새 소유자의 로그인 ID입니다. login은 sysname이며 기본값은 없습니다. login은 이미 존재하고 있는 SQL Server 로그인 또는 Windows 사용자여야 합니다. login이 데이터베이스 내의 기존 사용자 보안 계정을 통해 데이터베이스에 이미 액세스할 수 있는 경우에는 현재 데이터베이스의 소유자가 될 수 없습니다. 이 문제를 방지하려면 먼저 현재 데이터베이스에서 사용자를 삭제해야 합니다.[ @map = ] remap_alias_flag
SQL Server에서 로그인 별칭이 제거되었으므로 remap_alias_flag 매개 변수는 더 이상 사용되지 않습니다. remap_alias_flag 매개 변수를 사용하더라도 오류가 발생하지는 않지만 이를 사용하는 데 따른 특별한 결과도 없습니다.
반환 코드 값
0(성공) 또는 1(실패)
주의
sp_changedbowner를 실행하면 새 소유자가 데이터베이스 내에서 dbo 사용자로 알려집니다. dbo는 기본적으로 데이터베이스에서 모든 작업을 수행할 수 있는 권한을 갖습니다.
master, model 또는 tempdb 시스템 데이터베이스의 소유자는 변경할 수 없습니다.
sp_helplogins 저장 프로시저를 실행하면 유효한 login 값 목록을 표시할 수 있습니다.
login 매개 변수만 사용하여 sp_changedbowner를 실행하면 데이터베이스 소유권이 login에게 넘어갑니다.
ALTER AUTHORIZATION 문을 사용하여 보안 개체의 소유자를 변경할 수 있습니다. 자세한 내용은 ALTER AUTHORIZATION(Transact-SQL)를 참조하십시오.
사용 권한
데이터베이스에 대한 TAKE OWNERSHIP 권한이 필요합니다. 새 소유자에 상응하는 사용자가 데이터베이스에 있으면 로그인에 대한 IMPERSONATE 권한이 필요하고, 그렇지 않으면 서버에 대한 CONTROL SERVER 권한이 필요합니다.
예
다음 예에서는 Albert 로그인을 현재 데이터베이스의 소유자로 만듭니다.
EXEC sp_changedbowner 'Albert'