Compartilhar via


sp_changeobjectowner (Transact-SQL)

Aplica-se: SQL Server

Altera o proprietário de um objeto no banco de dados atual.

Importante

Esse procedimento armazenado só funciona com os objetos disponíveis no SQL Server 2000 (8.x). 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 SCHEMA ou ALTER AUTHORIZATION . sp_changeobjectowner altera o esquema e o proprietário. Para preservar a compatibilidade com versões anteriores do SQL Server, esse procedimento armazenado só alterará os proprietários do objeto quando o proprietário atual e o novo proprietário tiverem esquemas que tenham o mesmo nome que seus nomes de usuário do banco de dados.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_changeobjectowner
    [ @objname = ] N'objname'
    , [ @newowner = ] N'newowner'
[ ; ]

Argumentos

@objname [ = ] n'objname'

@objname é nvarchar(776), sem padrão.

O nome de uma tabela, exibição, função definida pelo usuário ou procedimento armazenado existente no banco de dados atual. @objname é um nvarchar(776), sem padrão. @objname pode ser qualificado com o proprietário do objeto existente, no formulário <existing_owner>.<object_name> se o esquema e seu proprietário tiverem o mesmo nome.

@newowner [ = ] N'novo proprietário'

O nome da conta de segurança que será o novo proprietário do objeto. @newowner é sysname, sem padrão. @newowner deve ser um usuário de banco de dados válido, função de servidor, usuário do Windows ou grupo do Windows com acesso ao banco de dados atual. Se o novo proprietário for um usuário do Windows ou um grupo do Windows para o qual não há nenhuma entidade de segurança no nível do banco de dados correspondente, um usuário do banco de dados será criado.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

sp_changeobjectowner remove todas as permissões existentes do objeto. Você terá que reaplicar todas as permissões que deseja manter após a execução sp_changeobjectownerdo . Portanto, recomendamos que você crie scripts de permissões existentes antes de executar sp_changeobjectownero . Depois que a propriedade do objeto for alterada, você poderá usar o script para reaplicar as permissões. É necessário modificar o proprietário do objeto no script de permissões antes de executar.

Para alterar o proprietário de um protegível, use ALTER AUTHORIZATION. Para alterar um esquema, use ALTER SCHEMA.

Permissões

Requer associação na função de banco de dados fixa db_owner ou associação na função de banco de dados fixa db_ddladmin e na função de banco de dados fixa db_securityadmin e também CONTROL permissão no objeto.

Exemplos

O exemplo a seguir altera o proprietário da tabela authors para Corporate\GeorgeW.

EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW';
GO