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