다음을 통해 공유


sp_changeobjectowner(Transact-SQL)

적용 대상: SQL Server

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

Important

이 저장 프로시저는 SQL Server 2000(8.x)에서 사용할 수 있는 개체에서만 작동합니다. SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 ALTER SCHEMA 또는 ALTER AUTHORIZATION를 사용합니다. sp_changeobjectowner 는 스키마와 소유자를 모두 변경합니다. 이전 버전의 SQL Server와의 호환성을 유지하기 위해 이 저장 프로시저는 현재 소유자와 새 소유자가 모두 데이터베이스 사용자 이름과 이름이 같은 스키마를 소유하는 경우에만 개체 소유자를 변경합니다.

Transact-SQL 구문 표기 규칙

구문

sp_changeobjectowner
    [ @objname = ] N'objname'
    , [ @newowner = ] N'newowner'
[ ; ]

인수

[ @objname = ] N'objname'

@objname nvarchar(776)이며 기본값은 없습니다.

현재 데이터베이스의 기존 테이블, 뷰, 사용자 정의 함수 또는 저장 프로시저의 이름입니다. @objname nvarchar(776)이며 기본값은 없습니다. @objname 스키마와 해당 소유자의 이름이 같은 경우 양식 <existing_owner>.<object_name> 에서 기존 개체의 소유자로 정규화할 수 있습니다.

[ @newowner = ] N'newowner'

개체의 새 소유자가 될 보안 계정의 이름입니다. @newowner 기본값이 없는 sysname입니다. @newowner 현재 데이터베이스에 액세스할 수 있는 유효한 데이터베이스 사용자, 서버 역할, 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