sp_changeobjectowner (Transact-SQL)

Применимо к:SQL Server

Изменяет владельца объекта в текущей базе данных.

Внимание

Эта хранимая процедура работает только с объектами, доступными в Microsoft SQL Server 2000 (8.x). Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого используйте ALTER SCHEMA или ALTER AUTHORIZATION . sp_changeobjectowner изменяет схему и владельца. Чтобы сохранить совместимость с более ранними версиями SQL Server, эта хранимая процедура будет изменять только владельцев объектов, если текущий владелец и новый владелец имеют то же имя, что и имена пользователей базы данных.

Внимание

К этой хранимой процедуре было добавлено требование новых разрешений.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

[ @objname = ] 'object' Имя существующей таблицы, представления, определяемой пользователем функции или хранимой процедуры в текущей базе данных. объект является nvarchar(776) без значения по умолчанию. объект может быть квалифицирован владельцем существующего объекта в форме existing_owner.объект, если схема и его владелец имеют то же имя.

[ @newowner = ] 'owner_ ' Имя учетной записи безопасности, которая будет новым владельцем объекта. владелецsysname, без значения по умолчанию. владелец должен быть допустимым пользователем базы данных, ролью сервера, именем входа 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)