Erro: 18456, Gravidade: 14, Estado: 38.

638 views
Skip to first unread message

Roger Camatini

unread,
Dec 3, 2014, 12:43:23 PM12/3/14
to sqlse...@googlegroups.com
Boa tarde pessoal,

Tenho um servidor de banco (homologação), versão de banco e SO seguem abaixo, e estou recebendo mensagem de erro
de conexão de um usuário(logon), abaixo tbm segue trecho do errorlog.

Já verifiquei a senha, ja fiz teste com esse usuário(logon) acessando o banco de outro servidor e tudo corre bem.
O modo de autenticaçao desse banco está como misto e o usuário(logon) em questão é db_owner do database respectivo a ele.
Usuário(logon) está na role public(pois tenho outros databases nesse banco, medida de segurança). 

Recentemente fiz uma atualização da base com os dados da produção, sendo que na produção esse erro não acontece.
Os dois bancos (hom e prd) são identicos em termos de configuração.

 O erro está sendo gerado a partir de uma conexão vinda de um server de aplicação no caso o server de ip 10.0.17.43.

Versão SQL Server

Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)   Jun 28 2012 08:36:30   Copyright (c) Microsoft Corporation  Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) 

ERRORLOG

2014-12-03 15:02:05.860 Logon Erro: 18456, Gravidade: 14, Estado: 38.
2014-12-03 15:02:05.860 Logon Login failed for user 'wbc'. Motivo: falha ao abrir o banco de dados explicitamente especificado. [CLIENTE: 10.0.17.43]
2014-12-03 15:02:20.870 Logon Erro: 18456, Gravidade: 14, Estado: 38.
2014-12-03 15:02:20.870 Logon Login failed for user 'wbc'. Motivo: falha ao abrir o banco de dados explicitamente especificado. [CLIENTE: 10.0.17.43]
2014-12-03 15:02:35.880 Logon Erro: 18456, Gravidade: 14, Estado: 38.
2014-12-03 15:02:35.880 Logon Login failed for user 'wbc'. Motivo: falha ao abrir o banco de dados explicitamente especificado. [CLIENTE: 10.0.17.43]  







Atenciosamente,
Rogério Camatini.

Jefferson Oliveira

unread,
Dec 3, 2014, 12:46:41 PM12/3/14
to sqlse...@googlegroups.com
String de conexão, propriedade default database?

--

---
You received this message because you are subscribed to the Google Groups "SQLServerDF" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sqlserverdf...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

[]'s

Jefferson Santos


Aviso Legal

Esta mensagem pode conter informações confidenciais e/ou privilegiadas. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não deve usar, copiar ou divulgar as informações nela contida ou tomar qualquer ação baseada nessas informações. Se você a recebeu indevidamente, queira, por gentileza, reenviá-la ao emitente, esclarecendo o equívoco. Este ambiente está sujeito a monitoramento.

Roger Camatini

unread,
Dec 3, 2014, 12:49:29 PM12/3/14
to sqlse...@googlegroups.com
Pois então, eu não tenho essa string. Vou se consigo junto ao desenvolvedor da empresa do software.


Atenciosamente,
Rogério Camatini.

Jefferson Oliveira

unread,
Dec 3, 2014, 12:50:00 PM12/3/14
to sqlse...@googlegroups.com
SQL Server Profiler.

Roger Camatini

unread,
Dec 3, 2014, 1:00:29 PM12/3/14
to sqlse...@googlegroups.com
Habilitei o SQL Profiler por um tempo, quais as informações são pertinentes a esse caso?




Atenciosamente,
Rogério Camatini.

Jefferson Oliveira

unread,
Dec 3, 2014, 2:06:04 PM12/3/14
to sqlse...@googlegroups.com
Imagem inline 2

Éderson Sousa

unread,
Dec 3, 2014, 3:02:16 PM12/3/14
to sqlse...@googlegroups.com, rogerio....@gmail.com
Sua conta teste tem permissão de acesso ao banco de dados model?

Rodrigo Ribeiro Gomes

unread,
Dec 3, 2014, 4:37:16 PM12/3/14
to sqlse...@googlegroups.com
Roger,

Resumindo as ações que você pode fazer, complementando as ações sugeridas pelo pessoal acima, você pode tentar:

  • Verifique qual a base default do login 'wbc'. Você pode obter essas informação com esta query:
    select default_database_name from sys.server_principals where name = 'wbc'
    Confirme se a base retornada pelo comando está acessível pelo login 'wbc'. Este comando pode ser útil:





--

---
You received this message because you are subscribed to the Google Groups "SQLServerDF" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sqlserverdf...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

[]'s Rodrigo Ribeiro Gomes
MCITP: Database Administrator 2008
MCITP: Database Developer 2008

061 8106-2710

Rodrigo Ribeiro Gomes

unread,
Dec 3, 2014, 4:43:00 PM12/3/14
to sqlse...@googlegroups.com
Roger,

Resumindo as ações que você pode fazer, complementando as ações sugeridas pelo pessoal acima, você pode tentar:

  • Verifique qual a base default do login 'wbc'. Você pode obter essas informação com esta query: 
    select default_database_name from sys.server_principals where name = 'wbc'
    Confirme se a base retornada pelo comando está acessível pelo login 'wbc'. Este comando pode ser útil:
  • USE <BaseRetornada>
    EXECUTE AS LOGIN = 'wbc';
    Se houver algum problema de acesso, um erro será lançado.
  • Caso o login 'wbc' não tenha as permissões, crie o usuário ou tente refazer o mapeamento (já que você trouxe a base de produção, estou supondo que o user já existia lá)
  • Descubra se a conexão está tentando ser feita em uma base diferente da base padrão do usuário. O método com o profile mencionado pelo Jefferson é útil. Encontrando a base, você pode tentar dar as devidas permissões na base desejada ou alterar na string de conexão a base que ele está tentando se conectar.

Roger Camatini

unread,
Dec 4, 2014, 5:01:31 AM12/4/14
to sqlse...@googlegroups.com
Rodrigo,

Nenhum erro retornou, realmente o login tem acesso ao database. E sim esse usuário já existia na base de produção. Estou desconfiado que a senha do login 'wbc' setada na aplicação está errada, já verificando com o desenvolvedor, sendo que não aparece nada de erro no profiler.


Atenciosamente,
Rogério Camatini.

Jefferson Oliveira

unread,
Dec 4, 2014, 5:40:38 AM12/4/14
to sqlse...@googlegroups.com
O SQL Server Login está mapeado corretamento ao Database User? 

[]'s

Jefferson Santos

Roger Camatini

unread,
Dec 4, 2014, 5:45:59 AM12/4/14
to sqlse...@googlegroups.com
Tudo certinho..






Atenciosamente,
Rogério Camatini.

Roger Camatini

unread,
Dec 4, 2014, 6:14:09 AM12/4/14
to sqlse...@googlegroups.com
O estranho é que tenho essa mensagem de erro e pelo profiler pode-se ver que há transações deste user..





Atenciosamente,
Rogério Camatini.

Jefferson Oliveira

unread,
Dec 4, 2014, 8:18:09 AM12/4/14
to sqlse...@googlegroups.com
Pode ser falta de permissão nos objetos (Securables).

Edvaldo Castro

unread,
Dec 4, 2014, 11:31:19 AM12/4/14
to sqlse...@googlegroups.com
boa tarde,

É possível que mesmo estando mapeado,
use seubanco
go
EXEC sys.sp_change_users_login 'auto_fix','wbc'


use seubanco
go
EXEC sys.sp_change_users_login 'update_one','wbc','wbc'


ha uma possibilidade remota de o SID não estar conferindo com o que estava antes... 

outra possibilidade, é:

ALTER LOGIN teste WITH DEFAULT_DATABASE = master


Pela sua mensagem de erro, o banco está sendo especificado durante a conexão... seja via string de conexão, ou mesmo manualmente no SSMS... Como um bom teste, você pode tentar se conectar via Management Studio, não especificando nenhum banco... neste caso, ele vai se conectar ao Default, ou então passando o Master na tela de conexão.



Att.:
 
Edvaldo Castro

 



Rodrigo Ribeiro Gomes

unread,
Dec 4, 2014, 3:47:59 PM12/4/14
to sqlse...@googlegroups.com
Olá Roger,

Conseguiu resolver o problema?
Em relação ao seu comentário sobre o problema ser senha, eu acredito que não seja, pois quando o erro é de senha, a mensagem de erro é um pouco diferente dessa que você postou pra gente. 

Quando o erro 18456, state 38 (que é exatamente o state que causa a mensagem conter "falha ao abrir o banco de dados explicitamente especificado". O erro de senha é o state 8), é disparado, significa que foi um erro de login e a causa foi o banco informado na string na conexão: O banco que você passou na string de conexão não pode ser acessado. Dentre as causas possíveis para não conseguir acesso ao banco especificado podemos citar algumas mais comuns: 

  • O banco está indisponível (offline, por exemplo)
  • O login não tem permissão na base informada
  • O nome da base está incorreto (Se o servidor foi instalado com um collation que diferencia maiúscula de minúsculas, certifique-se que o nome da base na string de conexão está exatamente igual ao que está no servidor)


Portanto, conforme o Edvaldo e o Jefferson já sugeriram, recomendo novamente que você verifique com o responsável pela string de conexão a definição da mesma. O profiler pode te ajudar a identificar em qual base ele está tentando conectar. 

Advaldo de Paiva Moreira

unread,
Dec 4, 2014, 5:44:03 PM12/4/14
to sqlse...@googlegroups.com

O sistema utiliza o dB aspstate? Se sim, o usuário em questão tem acesso a ele e ao tempdb?

Em  ambiente de homologação acho que tive um erro parevido., mas estou sem tempo de checar.

Roger Camatini

unread,
Dec 5, 2014, 8:41:13 AM12/5/14
to sqlse...@googlegroups.com
Edvaldo,

Fiz tudo o que sugeriu, todos os testes e mesmo assim o problema continua..


Atenciosamente,
Rogério Camatini.

Roger Camatini

unread,
Dec 5, 2014, 8:44:16 AM12/5/14
to sqlse...@googlegroups.com
Rodrigo,

Problema persiste. Respondendo a teus questionamento:

A base está online;
Login tem permissão na mesma;
O nome da base está correto, servidor foi instalado conforme produção;
Collation database wbc --> SQL_Latin1_General_CP1_CI_AS
Collation Instance --> Latin1_General_CI_AS

Apenas ainda não consegui contato com pessoal do sistema para validar a string de conexão.


Atenciosamente,
Rogério Camatini.

Rodrigo Ribeiro Gomes

unread,
Dec 5, 2014, 8:46:09 AM12/5/14
to sqlse...@googlegroups.com
E com o profiler? Você consegiu determinar qual a base que o login está chegando?

Roger Camatini

unread,
Dec 5, 2014, 8:48:34 AM12/5/14
to sqlse...@googlegroups.com
Eu não tenho muita experiencia com profiler. Com certeza não estou interpretando corretamente as informações lá disponiveis.


Atenciosamente,
Rogério Camatini.
Reply all
Reply to author
Forward
0 new messages