sp_changedbowner (Transact-SQL)

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

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

Внимание

Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого используйте ALTER AUTHORIZATION .

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

Синтаксис

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

Аргументы

[ ] @loginame= "login"
Идентификатор имени входа нового владельца текущей базы данных. имя входаsysname, без значения по умолчанию. имя входа должно быть уже существующим пользователем SQL Server или пользователем Windows. имя входа не может стать владельцем текущей базы данных, если у нее уже есть доступ к базе данных с помощью существующей учетной записи безопасности пользователя в базе данных. Чтобы избежать этой ситуации, сначала удалите данного пользователя в текущей базе данных.

[ ] @map=remap_alias_flag
Параметр remap_alias_flag устарел, так как псевдонимы входа были удалены из SQL Server. Использование параметра remap_alias_flag не приводит к ошибке, но не влияет.

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

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

Замечания

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

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

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

Выполнение sp_changedbowner только с параметром входа изменяет владение базой данных для входа.

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

Разрешения

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

Примеры

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

EXEC sp_changedbowner 'Albert';  

См. также

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