Compartilhar via


sp_changedbowner (Transact-SQL)

Aplica-se: SQL Server

Altera o proprietário do banco de dados atual.

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Em vez disso, use ALTER AUTHORIZATION .

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_changedbowner
    [ @loginame = ] N'loginame'
    [ , [ @map = ] 'map' ]
[ ; ]

Argumentos

@loginame [ = ] N'loginame'

A ID de logon do novo proprietário do banco de dados atual. @loginame é sysname, sem padrão. @loginame deve ser um logon do SQL Server ou usuário do Windows já existente. @loginame não poderá se tornar o proprietário do banco de dados atual se já tiver acesso ao banco de dados por meio de uma conta de segurança de usuário existente no banco de dados. Para evitar esse cenário, descarte o usuário no banco de dados atual primeiro.

@map [ = ] 'mapa'

Esse parâmetro foi preterido e é mantido para compatibilidade com versões anteriores de scripts.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

Depois sp_changedbowner de executado, o novo proprietário é conhecido como o dbo usuário dentro do banco de dados. O dbo usuário tem permissões implícitas para executar todas as atividades no banco de dados.

O proprietário dos masterbancos de dados , model, ou tempdb do sistema não pode ser alterado.

Para exibir uma lista dos valores de @loginame válidos, execute o sp_helplogins procedimento armazenado.

A execução sp_changedbowner apenas com o parâmetro @loginame altera a propriedade do banco de dados para @loginame.

Você pode alterar o proprietário de qualquer protegível usando a ALTER AUTHORIZATION instrução. Para obter mais informações, consulte ALTER AUTHORIZATION.

Permissões

Requer a permissão TAKE OWNERSHIP no banco de dados. Se o novo proprietário tiver um usuário correspondente no banco de dados, requer IMPERSONATE permissão no login, caso contrário, requer CONTROL SERVER permissão no servidor.

Exemplos

O exemplo a seguir torna o logon Albert o proprietário do banco de dados atual.

EXEC sp_changedbowner 'Albert';