O banco de dados myDb não está acessível. (ObjectExplorer)

3

Estou desenvolvendo um aplicativo da Web ASP.NET MVC3, que se conecta a um banco de dados do SQL Server 2008 R2.

Tudo estava funcionando bem, até que comecei a receber esse erro:

The database myDb is not accessible. (ObjectExplorer)

Esse problema também aparece quando tento navegar no banco de dados no SQL Server Management Studio. Parece que, de alguma forma, perdi permissão para acessar meu banco de dados? Eu posso navegar em outros bancos de dados muito bem.

Estou usando a autenticação de modo misto (até agora a Autenticação do Windows está funcionando bem). Se eu fizer o login como sa , recebo o mesmo erro.

Como posso devolver as permissões necessárias à minha conta de usuário, se não conseguir acessar o banco de dados?

Que tipo de coisas podem ter causado isso em primeiro lugar?

As únicas alterações que fiz recentemente não foram relacionadas a banco de dados, estou tentando descobrir o que causou isso.

Atualizar Bem, depois de reiniciar o computador, tudo começou a funcionar novamente: / Eu não mudei nada, não li as respostas aqui ainda. Muito estranho!

    
por elwyn 08.04.2011 / 08:51

4 respostas

1

Atualizar Bem, depois de reiniciar o computador, tudo começou a funcionar novamente: / Eu não mudei nada, não li as respostas aqui ainda. Muito estranho!

    
por 09.04.2011 / 08:47
2

No passado, descobri que isso se deve ao fato de o proprietário do banco de dados ser invild, como se tivesse sido excluído da instância do SQL.

Tente isso em uma janela de consulta:

use <database with issue>;
exec sp_changedbowner 'sa';

Ele deve permitir que você navegue no DB no navegador do SSMS.

Se você não estiver usando a autenticação de modo misto, submenente 'sa' com uma conta de domínio, de preferência uma que atenda como a conta de serviço com direitos de propriedade intelectual.

    
por 08.04.2011 / 23:01
0

Parece uma mensagem de erro muito genérica. Tente executar o abaixo do usuário autenticado do Windows e veja se você obteve algum resultado.

EXEC sp_change_users_login 'report'

Se sim, execute abaixo.

EXEC sp_change_users_login 'auto_fix', 'username_from_above'

Se isso não ajudar, tentaremos descobrir outra coisa.

    
por 08.04.2011 / 09:34
0

A resposta aceita diz que tudo começou a funcionar depois de uma reinicialização, mas por quê?

Isso aconteceu comigo depois que tentei atualizar o banco de dados com SSDT (plug-in do Visual Studio) e o script falhou com um erro. Não consegui acessar o banco de dados até mesmo do SSMS (Management Studio). Minha entrada no banco de dados mostrou "(Single User)" ao lado, o que foi uma pista para o problema.

O script configurou o banco de dados no modo SINGLE_USER e terminou abruptamente antes de configurá-lo novamente para MULTI_USER. Depois disso, o banco de dados viu o usuário do SSDT como ainda ativo e não permitiria nenhuma outra conexão. A reinicialização da limpeza da conexão (o ciclo do serviço do SQL Server provavelmente também teria sido feito), permitindo que eu me reconectasse.

De lá, pude colocar o banco de dados de volta no modo MULTI_USER usando as propriedades do banco de dados (Opções - > Estado - > Acesso restrito), mas executei o SSDT a partir de um ramo de origem diferente, concluindo o modo .

    
por 02.10.2013 / 17:02