Os objetos de suporte do diagrama do banco de dados não podem ser instalados ... nenhum proprietário válido
Tentei criar um diagrama de banco de dados com o SQL Server 2008, mas ocorreu um erro:
Os objetos de suporte do diagrama do banco de dados não podem ser instalados porque esse banco de dados não possui um proprietário válido. Para continuar, primeiro use a página Arquivos da caixa de diálogo Propriedades do Banco de Dados ou a instrução ALTER AUTHORIZATION para definir o proprietário do banco de dados com um logon válido e adicione os objetos de suporte do diagrama do banco de dados.
Então eu tentei o seguinte:
O próximo erro aparece:
Mensagem 15404, nível 16, estado 11, linha 1 Não foi possível obter informações sobre o grupo / usuário do Windows NT 'WIN-NDKPHUPPNFL \ Administrator', código de erro 0x534.
O problema é que o nome do PC foi alterado para "DevPC". Também mudei isso no script de atualização, mas ainda assim o mesmo erro 15404.
O que posso fazer para corrigir esse erro irritante?
— Rookian
Você também obtém esse problema ao restaurar um backup de uma máquina diferente.
Ao restaurar um banco de dados de outra máquina, você pode corrigir esse erro executando dois comandos: 1) alter authorization on database::[db_name] to [sa]e 2) execute o mesmo comando novamente e substitua [sa]pelo usuário que possuía o banco de dados imediatamente após a restauração.
Você deve considerar a conta de autenticação SQL para a propriedade do banco de dados; então você não precisa se preocupar com contas indo e vindo, bancos de dados ou instâncias movendo-se para servidores diferentes e sua próxima alteração no nome do PC. Eu tenho vários sistemas onde usamos:
Ou, se você deseja alterar o proprietário para essa conta local de Administrador, deve ser:
Porque renomear a máquina DevPCeliminou a conta local que costumava ser nomeada WIN-ND...\Administratore isso também invalidou o proprietário atual do banco de dados.
Se SELECT @@SERVERNAME;não for preciso (deve-se dizer DevPC), para garantir que a renomeação do servidor seja mantida no SQL Server, você também pode emitir o seguinte:
ele mostra: "WIN-NDKPHUPPNFL" Eu usei sua instrução sql e funciona ... mas essa configuração está correta ou preciso fazer mais alguma coisa?
Bem, isso realmente depende. Se você precisar que seu banco de dados seja de propriedade de um usuário de domínio / grupo de trabalho do Windows, provavelmente há mais trabalho a ser feito. Pessoalmente, acho isso problemático. Talvez leia isto primeiro: sqlblog.com/blogs/tibor_karaszi/archive/2009/12/30/…
Há algum problema em configurá-lo como sase você tiver a autenticação sql desativada?
@AaronBertrand Olá, tenho uma pergunta. Por padrão, se criarmos um banco de dados, o proprietário do banco de dados será definido como usuário atual do Windows e se o usuário atual do Windows também for administrador. Por que precisamos alterá-lo para Sql Authantication Login. Na verdade, eu não consigo entender esse erro. Se mudarmos para um login, funcionará. Mas o login do administrador do Windows também é administrador do sistema. Você poderia ajudar?
Eu restaurei vários bancos de dados e todos exibiram o erro na pergunta do OP, mesmo que as propriedades de cada banco de dados mostrassem um usuário válido. Eu usei o 1º comando para alterá-lo para [sa]e depois mudei de volta para o usuário que ele dizia que era antes e viola, sem mais erros. Não sei por que um banco de dados restauração não configurar adequadamente o proprietário banco de dados ...
No SQL Server Management Studio, faça o seguinte:
Clique com o botão direito do mouse no seu banco de dados, escolha propriedades
Vá para a página Opções
Na lista suspensa à direita, "Nível de compatibilidade", escolha "SQL Server 2005 (90)" 3-1. escolha "SQL Server 2008" se você receber um erro de comparabilidade.
Vá para a página Arquivos
Digite "sa" na caixa de texto do proprietário. 5-1 ou clique nas reticências (...) e escolha um legítimo proprietário.
depois de fazer isso, agora você poderá acessar os diagramas de banco de dados.
— Margulies de Israel
Existe alguma razão pela qual um banco de dados NÃO deve ter um proprietário? Estou entrando no banco de dados de produtos de outra pessoa e não há um conjunto de proprietários. Isso foi intencional? (Não há ninguém no cliente que saiba).
O banco de dados deve ter um proprietário. Escolher "sa" em vez de um legítimo proprietário é simplesmente uma escolha fácil para corrigir o erro acima. Mas escolher um legítimo proprietário também resolveu o problema.
— Lesly Revenge 10/10
Alguém poderia explicar o objetivo de alterar o nível de compatibilidade nessas etapas? Apenas definir o proprietário nos arquivos como 'sa' era suficiente para mim (mesmo que eu não tenha a autenticação sql ativada, estranhamente).
Isso funcionou para mim. Porém, eu precisava remover meu usuário de Databasename> Security.
Isso funcionou para mim, no SQL Server 2017, usando o Management Studio 17.9, sem a necessidade da etapa 1
— Giorgio Barchiesi
— RafiO
Digite "SA" em vez de "sa" na caixa de texto do proprietário. Isso funcionou para mim.
— Adarsh ​​VC
Eu queria ver meu diagrama, que criei no mesmo dia no trabalho, em casa. Mas não pude por causa dessa mensagem.
Eu descobri que o proprietário do banco de dados era o usuário do meu computador - como esperado. mas como o computador está no domínio da empresa e não estou conectado à rede da empresa, o banco de dados não pôde resolver o proprietário.
Então, o que eu fiz foi mudar o proprietário para um usuário local e funcionou !!
Você altera o usuário clicando com o botão direito do mouse no banco de dados, propriedades, arquivos, proprietário
— PhpLou
Isso consertou para mim. Ele define o proprietário encontrado na seção 'arquivos' da janela de propriedades do banco de dados e é conforme o script do management studio.
De acordo com a documentação sp_changedbowner, isso foi preterido agora.
Baseado na resposta de Israel. A resposta de Aaron é a variação não obsoleta disso.
Selecione seu banco de dados - Clique com o Botão Direito - Selecionar Propriedades
Selecione ARQUIVO no lado esquerdo da página
Na caixa PROPRIETÁRIO, selecione o botão que possui três pontos (…)
Agora selecione user 'sa e clique em OK
— Anil Rana
Eu apenas experimentei isso. Eu tinha lido as sugestões nesta página, bem como as sugestões da Autoridade SQL (que é a mesma coisa) e nenhuma das opções acima funcionou.
No final, removi a conta e recriei (com o mesmo nome de usuário / senha). Assim, todos os problemas desapareceram.
Infelizmente, isso significa que eu não sei o que deu errado, então não posso compartilhar mais nada.
1.Clique com o botão direito do mouse no seu banco de dados, 2.Em seguida, selecione Propriedades. 3. Selecione a opção em níveis de compatibilidade, escolha sql 2008 [100] se estiver trabalhando com o Microsoft sql 2008.
4.Em seguida, selecione o arquivo e escreva (sa) na caixa de texto do proprietário
100% funciona para mim.
— Jefferson X Masonic
Uma maneira mais fácil de resolver esses problemas seria clicar com o botão direito do mouse no nome do seu banco de dados, escolher "Nova consulta", digite "exec sp_changedbowner 'sa'" e executar a consulta. Então você estará pronto para ir.
— Lebone Mcdonald
você deve entrar como administrador, clicar com o botão direito do mouse no microsofft sql server management studio e executar como admin
— abdelnaser rafat
Só é necessário executá-lo no editor de consultas ALTER AUTHORIZATION ON DATABASE :: YourDatabase TO [domain \ account];
— Nui San
O problema real é que o proprietário padrão (dbo) não tem um logon mapeado para ele.Como tentei mapear o logon sa para o proprietário do banco de dados, recebi outro erro informando "Usuário, grupo ou função 'dbo' já existe ... ". No entanto, se você tentar esse código, ele realmente funcionará:
ALTERAR A AUTORIZAÇÃO NO DATABASE :: yourDB PARA "yourLogin"
EXECUTAR COMO USUÁRIO = N'dbo 'REVERT
clique com o botão direito do mouse no seu banco de dados e selecione propriedades. selecione a opção em níveis de compatibilidade, escolha sql 2005 [90] em vez de 2008 se você estiver trabalhando com o Microsoft sql 2008. selecione o arquivo e escreva (sa) na caixa de texto do proprietário. provavelmente vai funcionar