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