sp_changeobjectowner(Transact-SQL)

현재 데이터베이스에 있는 개체의 소유자를 변경합니다.

중요 정보중요

이 저장 프로시저는 Microsoft SQL Server 2000에서 사용 가능한 개체에 대해서만 작동합니다. Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. 대신 ALTER SCHEMA 또는 ALTER AUTHORIZATION을 사용하십시오. sp_changeobjectowner는 스키마와 소유자를 함께 변경합니다. 이전 버전의 SQL Server와 호환성을 유지하기 위해 이 저장 프로시저는 현재 소유자와 새 소유자가 모두 데이터베이스 사용자 이름과 동일한 이름의 스키마를 갖고 있을 경우에만 개체 소유자를 변경합니다.

중요 정보중요

새로운 사용 권한 요구 사항이 이 저장 프로시저에 추가되었습니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'

인수

  • [ @objname = ] 'object'
    현재 데이터베이스의 기존 테이블, 뷰, 사용자 정의 함수 또는 저장 프로시저의 이름입니다. object는 nvarchar(776)이며 기본값은 없습니다. 스키마와 스키마 소유자가 동일한 이름을 갖고 있는 경우 object는 existing_owner**.**object의 형태로 기존 개체의 소유자를 명시하여 정규화할 수 있습니다.

  • [ @newowner=] **'**owner '
    개체의 새 소유자가 될 보안 계정의 이름입니다. owner는 sysname이며 기본값은 없습니다. owner는 유효한 데이터베이스 사용자, 서버 역할, Microsoft Windows 로그인 또는 현재 데이터베이스에 액세스할 수 있는 Windows 그룹이어야 합니다. 새 소유자가 해당하는 데이터베이스 수준의 보안 주체가 없는 Windows 사용자 또는 Windows 그룹이면 데이터베이스 사용자가 생성됩니다.

반환 코드 값

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

주의

sp_changeobjectowner는 개체에서 기존의 모든 사용 권한을 제거합니다. sp_changeobjectowner 실행 후에 권한을 유지하려면 모든 사용 권한을 다시 적용해야 합니다. 따라서 sp_changeobjectowner를 실행하기 전에 기존의 사용 권한을 스크립팅하는 것이 좋습니다. 개체의 소유권이 변경된 후 스크립트를 사용하여 사용 권한을 다시 적용할 수 있습니다. 실행 전에 사용 권한 스크립트 내의 개체 소유자를 변경해야 합니다.

보안 개체의 소유자를 변경하려면 ALTER AUTHORIZATION을 사용하십시오. 스키마를 변경하려면 ALTER SCHEMA를 사용하십시오.

사용 권한

db_owner 고정 데이터베이스 역할의 멤버 자격 또는 db_ddladmin 고정 데이터베이스 역할 및 db_securityadmin 고정 데이터베이스 역할 모두의 멤버 자격, 그리고 개체에 대한 CONTROL 권한이 필요합니다.

다음 예에서는 authors 테이블의 소유자를 Corporate\GeorgeW로 변경합니다.

EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW';
GO

참고 항목

참조

ALTER SCHEMA(Transact-SQL)

ALTER DATABASE(Transact-SQL)

ALTER AUTHORIZATION(Transact-SQL)

sp_changedbowner(Transact-SQL)

시스템 저장 프로시저(Transact-SQL)