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)
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по