Compartilhar via


sp_changeobjectowner (Transact-SQL)

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

Observação importanteImportante

Esse procedimento armazenado só funciona com os objetos disponíveis no MicrosoftSQL Server 2000. Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Use ALTER SCHEMA ou ALTER AUTHORIZATION em seu lugar. sp_changeobjectowner altera o esquema e o proprietário. Para preservar a compatibilidade com versões anteriores do SQL Server, esse procedimento armazenado irá alterar proprietários de objetos somente quando o proprietário atual e o novo possuírem esquemas que tenham o mesmo nome que seus nomes de usuário do banco de dados.

Observação importanteImportante

Um novo requisito de permissão foi adicionado a esse procedimento armazenado.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'

Argumentos

  • [ @objname = ] 'object'
    É o nome do procedimento armazenado, função definida pelo usuário, exibição ou tabela existente no banco de dados atual. object é um nvarchar(776), sem padrão. object pode ser qualificado com o proprietário do objeto existente no formato existing_owner**.**object, se o esquema e seu proprietário tiverem o mesmo nome.

  • [ @newowner=] **'**owner '
    É o nome da conta de segurança que será a nova proprietária do objeto. owner é sysname, sem padrão. owner deve ser um usuário de banco de dados, uma função de servidor, um logon do Microsoft Windows ou um grupo do Windows válido com acesso ao banco de dados atual. Se o novo proprietário for um usuário ou grupo do Windows para o qual não há uma entidade correspondente no nível de banco de dados, será criado um usuário de banco de dados.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_changeobjectowner remove todas as permissões existentes do objeto. Você deverá reaplicar as permissões que desejar manter depois de executar sp_changeobjectowner. Portanto, é recomendável gerar o script de permissões existentes antes de executar sp_changeobjectowner. Depois que propriedade do objeto foi alterada, você poderá usar o script para reaplicar permissões. É necessário modificar o proprietário do objeto no script de permissões antes de executar. Para obter mais informações sobre scripts de banco de dados, consulte Documentando e realizando o script de bancos de dados.

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 nas funções de banco de dados fixas db_ddladmin e db_securityadmin, e também a permissão CONTROL no objeto.

Exemplos

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

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