No arquivo de log de erros do SQL Server, encontrei as seguintes linhas:
2018-02-22 14:10:58.95 spid17s Starting up database 'msdb'.
2018-02-22 14:10:58.95 spid16s Starting up database 'ReportServer'.
2018-02-22 14:10:58.95 spid18s Starting up database 'ReportServerTempDB'.
2018-02-22 14:10:58.95 spid19s Starting up database 'XYZ'.
Se eu verificar o status do banco de dados XYZ antes dessa hora, ele estará ONLINE
usando a seguinte instrução:
SELECT state_desc FROM sys.databases WHERE name='XYZ'
... mas quando tento me conectar a esse banco de dados usando um aplicativo C #, ele não pode se conectar ao banco de dados.
O erro é:
Falha no login para o usuário 'asd'.
Motivo: falha ao abrir o banco de dados especificado explicitamente.
Tentei três usuários diferentes (usuário do Windows, sa, usuário do SQL Server definido para o aplicativo). O problema ocorre quando eu executo o aplicativo na inicialização do sistema operacional, mas se eu iniciá-lo manualmente após a inicialização, nenhum erro ocorre, então acho que todas as configurações do SQL Server e do firewall estão corretas.
Também verifiquei antes se o status do serviço está sendo executado.
O que mais devo verificar para garantir que o banco de dados esteja realmente online e pronto para consultas?
Estou procurando uma chave que me diga que está ok para consultar o banco de dados, em vez de atrasar por um tempo (mesmo que não seja por um motivo claro).
Pensei em verificar o log de erros quanto ao texto "Iniciando o banco de dados 'XYZ'", mas isso significa que tenho que adicionar uma configuração para o aplicativo ao caminho do log de erros do SQL Server. Também significa ler o arquivo várias vezes até encontrar essa frase.