Pergunta

Eu tentei criar um diagramm banco de dados com SQL Server 2008, mas ocorre um erro:

Suporte diagrama de banco de dados objetos não pode ser instalado porque este banco de dados não tem um proprietário válido. Para continuar, primeiro use a página de arquivos da caixa de diálogo banco de dados Propriedades de caixa ou a instrução ALTER AUTHORIZATION para definir o proprietário banco de dados para um válido login, em seguida, adicione o diagrama de banco de dados objetos de suporte.

Então eu tentei o seguinte:

EXEC sp_dbcmptlevel 'Ariha', '90';
GO
ALTER AUTHORIZATION ON DATABASE::Ariha TO [WIN-NDKPHUPPNFL\Administrator]
GO
USE Ariha
GO
EXECUTE AS USER = N'dbo' REVERT
GO

A seguir erorr aparece:

Msg 15404, nível 16, estado 11, linha 1 Não foi possível obter informações sobre Windows NT grupo / usuário 'WIN-NDKPHUPPNFL \ Administrator', erro código de 0x534.

O problema é o nome do PC se transformou em "DevPC" Eu também mudou isso no script de atualização, mas ainda o mesmo erro 15404.

O que posso fazer para corrigir este erro irritante?

Foi útil?

Solução

Você deve considerar a conta de autenticação do SQL para a propriedade de banco de dados; então você não precisa se preocupar com contas indo e vindo, bancos de dados ou instâncias que se deslocam para diferentes servidores, e sua próxima mudança de nome PC. Tenho vários sistemas onde usamos:

ALTER AUTHORIZATION ON DATABASE::Ariha TO [sa];

Ou se você quiser alterar o proprietário para essa conta Administrador local, então ele deve ser:

ALTER AUTHORIZATION ON DATABASE::Ariha TO [DevPC\Administrator];

Como mudar o nome da máquina para DevPC eliminou a conta local que costumava ser chamado WIN-ND...\Administrator e isso também tem invalidado o proprietário atual do banco de dados.

Se SELECT @@SERVERNAME; não é exato (que deve dizer DevPC), então, a fim de garantir que a sua renomeação servidor tomou conta dentro do SQL Server, você também pode querer emitir o seguinte:

EXEC sp_dropserver @server = N'old server name';
GO
EXEC sp_addserver @server = N'DevPC', @local = N'local';
GO

Outras dicas

No SQL Server Management Studio faça o seguinte:

  1. clique direito em seu banco de dados, escolha Propriedades
  2. Vá para a página Opções
  3. no menu suspenso na direita chamado "nível de compatibilidade" escolha "SQL Server 2005 (90)" 3-1. escolha "SQL Server 2008" se você receber um erro de comparabilidade.
  4. Vá para a página arquivos
  5. Digite "sa" no proprietário caixa de texto. 5-1 ou clique nas reticências (...) e escolher um legítimo proprietário.
  6. Clique em OK

depois de fazer isso, você vai agora ser capaz de acessar o banco de diagramas.

enter descrição da imagem aqui

USE [ECMIS]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

Ele funciona.

Digite "SA" em vez de "sa" no proprietário caixa de texto. Isso funcionou para mim.

Eu tive o mesmo problema.
Eu queria ver o meu diagrama, que eu criei no mesmo dia no trabalho, em casa. Mas eu não podia por causa dessa mensagem.
Eu descobri que o proprietário do banco de dados foi o usuário do meu computador -conforme o esperado. mas desde que o computador está no domínio da empresa, e eu não estou conectado à rede da empresa, o banco de dados não foi possível resolver o proprietário.

Então, o que eu fiz é alterar o proprietário para um usuário local e funcionou !!
Espero que isso ajude alguém.

Você pode alterar o usuário, clique com o botão direito no banco de dados, propriedades, arquivos, proprietário

Este fixa-lo para mim. Ele define o proprietário encontrou abrigo da secção da janela de propriedades do banco de dados dos arquivos ', e está conforme o script pelo estúdio de gestão.

USE [your_db_name]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

De acordo com a sp_changedbowner documentação este é obsoleto agora.

Com base na resposta de Israel. A resposta de Aaron é a variação não-obsoleto disso.

Selecione seu banco de dados - Right Click - Selecione Propriedades

Selecionar ARQUIVO no lado esquerdo da página

Na caixa de proprietário, selecione o botão que tem três pontos (...) nele

Agora selecione o usuário ‘sa e clique em OK

Eu só experimentou este. 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, I removido a conta e recriados (com o mesmo nome de utilizador / palavra-passe). Só assim, todas as questões foram embora.

Infelizmente, isso significa que eu não sei o que deu errado, então não posso compartilhar qualquer outra coisa.

1.Right clicar no seu banco de dados, 2.Then propriedades escolha. 3.Select a opção nos níveis de compatibilidade escolher sql 2008 [100] se você estiver trabalhando com o Microsoft SQL 2008.

4.Then selecione o arquivo e write (sa) em owner`s caixa de texto

100% funciona para mim.

Uma maneira mais fácil de resolver este problemas seria clicar o botão direito no nome do seu banco de dados, escolha "New Query", digite "exec sp_changedbowner 'sa'" e executar a consulta. Então você vai ser bom para ir.

Você deve entrar como administrador, clique direito de estúdio de gestão do Microsoft SQL Server e executar como administrador

Apenas precisa executá-lo em consulta editor ALTER AUTORIZAÇÃO ON DATABASE :: yourdatabase TO [domínio \ conta];

O verdadeiro problema é que o proprietário padrão (dbo) não tem um login mapeado para ele na all.As Tentei mapear o logon do sa para o proprietário do banco recebi outro erro informando "Usuário, grupo ou função 'dbo' já existe ... "No entanto, se você tentar este código que vai realmente funciona:.

EXEC sp_dbcmptlevel 'yourDB', '90';

go

ALTER AUTORIZAÇÃO ON DATABASE :: yourDB TO "yourLogin"

go

Usar [yourDB]

go

EXECUTAR AS REVERT N'dbo' USER =

go

clique direito em seu banco de dados, em seguida, selecione Propriedades. selecionar a opção nos níveis de compatibilidade escolher sql 2005 [90], em vez de 2008 se você estiver trabalhando com Microsoft SQL Server 2008. em seguida, selecione o arquivo e write (sa) em owner`s caixa de texto. ele vai trabalhar provavelmente

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top