sp_changeobjectowner(Transact-SQL)
현재 데이터베이스에 있는 개체의 소유자를 변경합니다.
중요 |
---|
이 저장 프로시저는 MicrosoftSQL Server 2000에서 사용 가능한 개체에 대해서만 작동합니다. Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. 대신 ALTER SCHEMA 또는 ALTER AUTHORIZATION을 사용하십시오. sp_changeobjectowner는 스키마와 소유자를 함께 변경합니다. 이전 버전의 SQL Server와 호환성을 유지하기 위해 이 저장 프로시저는 현재 소유자와 새 소유자가 모두 데이터베이스 사용자 이름과 동일한 이름의 스키마를 갖고 있을 경우에만 개체 소유자를 변경합니다. |
중요 |
---|
새로운 사용 권한 요구 사항이 이 저장 프로시저에 추가되었습니다. |
구문
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