sp_changeobjectowner (Transact-SQL)
Изменяет владельца объекта в текущей базе данных.
Важно! |
---|
Эта хранимая процедура работает только с объектами, доступными в Microsoft SQL Server 2000. В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Используйте вместо этого операции ALTER SCHEMA или ALTER AUTHORIZATION. Хранимая процедура sp_changeobjectowner изменяет как схему, так и владельца. Для сохранения совместимости с более ранними версиями SQL Server эта хранимая процедура изменит только владельцев объекта, если и текущий владелец, и новый владелец владеют схемами, которые имеют такое же имя, как и имена пользователей базы данных. |
Важно! |
---|
К этой хранимой процедуре было добавлено требование новых разрешений. |
Синтаксические обозначения Transact-SQL
Синтаксис
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
См. также
Справочник
ALTER AUTHORIZATION (Transact-SQL)