sp_changedbowner (Transact-SQL)

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

Значок ссылки на разделСоглашение о синтаксисе в Transact-SQL

Синтаксис

sp_changedbowner [ @loginame = ] 'login'
          [ , [ @map= ] remap_alias_flag ]

Аргументы

  • [ @loginame= ] 'login'
    Идентификатор имени входа нового владельца текущей базы данных. Аргумент login имеет тип sysname и не имеет значения по умолчанию. Аргумент login должен быть уже существующим именем входа пользователя SQL Server или Microsoft Windows. Аргумент login не может стать владельцем текущей базы данных, если оно уже имеет доступ к базе данных через существующий псевдоним или учетную запись безопасности пользователя в пределах базы данных. Чтобы избежать этого, сначала удалите псевдоним или пользователя в пределах текущей базы данных.
  • [ @map= ] remap_alias_flag
    Значение true или false, которое указывает, сопоставляются ли существующие псевдонимы, назначенные прежнему владельцу базы данных (dbo) с новым владельцем текущей базы данных или удаляются. Аргумент remap_alias_flag имеет тип varchar(5) и значение по умолчанию NULL. Это означает, что любые существующие псевдонимы прежнего dbo сопоставляются с новым владельцем текущей базы данных. false означает, что существующие псевдонимы прежнего владельца базы данных удаляются.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

После выполнения процедуры sp_changedbowner новый владелец становится пользователем dbo внутри базы данных. Пользователь dbo имеет неявные разрешения на выполнение любых действий в базе данных.

Владельца системных баз данных master, model или tempdb нельзя изменить.

Чтобы отобразить список действительных значений login, выполните хранимую процедуру sp_helplogins.

Выполнение процедуры sp_changedbowner с одним только аргументом login передает принадлежность базы данных login и привязывает псевдонимы, ранее назначенные dbo, к новому владельцу базы данных.

Можно изменить владельца любого защищаемого объекта с помощью инструкции ALTER AUTHORIZATION. Дополнительные сведения см. в разделе ALTER AUTHORIZATION (Transact-SQL).

Разрешения

Необходимо разрешение TAKE OWNERSHIP для базы данных. Если новый владелец имеет соответствующего пользователя в базе данных, требуется разрешение IMPERSONATE для имени входа, в противном случае необходимо разрешение CONTROL SERVER для сервера.

Примеры

В следующем примере имени входа Albert передается владение текущей базой данных, а также к нему привязываются существующие псевдонимы, назначенные прежнему владельцу базы данных.

EXEC sp_changedbowner 'Albert'

См. также

Справочник

Хранимые процедуры безопасности (Transact-SQL)
CREATE DATABASE (Transact-SQL)
sp_dropalias (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helpdb (Transact-SQL)
sp_helplogins (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005