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