none
Connection failed RRS feed

  • Pergunta

  • Tenho o seguinte cenario:

     

    Server: Win 2003 + SQL 2000

    Client: XP, Vista, Win 7

    rede: não esta em domino, mais todas as maquinas estao no mesmo grupo de trabalho.

     

    Quando eu tento fazer uma conexao via ODBC do XP para o SQL, funciona perfeitamente.

    mais quando eu tento fazer uma conexao via ODBC do Vista para o SQL da erro.

    "SQL Server does not exist or access denied"

     

    O ping para servidor funciona, tanto do XP quanto do Vista

     

     

     

     

    terça-feira, 10 de agosto de 2010 17:28

Respostas

  • Boa noite RegMarques, tudo bem?

    Tudo no SO executa sobre um contexto de usuário. Ou seja, qualquer objeto tem que ter um dono, seja o usuário logado no sistema (Quando abrimos o notepad por exemplo).

    O serviço do sql provavelmente está configurado com um usuário local service, ou, usuário criado na máquina. Tá.. o que acontece então?

    Quando você tenta conectar com o vista, ele envia como contexto de usuário o usuário network, que é negado pelo servidor.

    Agora por que ele é negado e no xp não?

    Bom para ter estes detalhes, recomendo utilizar a ferramenta porcmon, para identificar exatamente sob qual contexto a conexão está sendo enviada. Depois, devemos observar as dlls movimentadas no registro e identificar se o problema está sendo causado por contexto do usuário ou problemas com timezone entre os servidores, que podem gerar problemas.

    Se o serviço estiver com o usuário local service, isto significa que suas credenciais estão chegando nulas.

    Verifique as contas e reporte para que possamos ajudá-lo.

    Obrigado

    Atenciosamente,

    Dobereiner Miller Silva Rodrigues

    sqlinternal.blogspot.com


    Aquilo que sou é aquilo que me foi outorgado
    • Marcado como Resposta RegMarques segunda-feira, 27 de setembro de 2010 14:13
    quinta-feira, 12 de agosto de 2010 23:32

Todas as Respostas

  • RegMarques

    faz um teste de telnet no vista TELNET ip_do_servidor 1433

    verifique tbm se os protocolos TCP\IP e named pipes esta ativos no SQL Server e se o serviço SQL Browser esta inicido no servidor

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba
    terça-feira, 10 de agosto de 2010 17:45
    Moderador
  • Faça o seguinte: Clique em iniciar/executar na estação e execute o comando CLICONFG verifique se o protocolo TCP-IP e o protocolo Named-Pipes estão habilitados. Se não estiverem habilite-os. Nesta mesma tela na guia Alias clique em incluir e digite o nome do servidor mantenha selecionado TCP-IP.

    Faça o teste. Se não funcionar volte no CLICONFG, exclua o ALIAS criado e crie-o novamente marcando Named-PIPES. Então faça o teste novamente.

    quarta-feira, 11 de agosto de 2010 13:18
  • Marcelo,

    Via telnet não conecta.
    do SQL Browser, nao tenho este servico instalado no servidor.... (este servico nao existe só apartir do sql 2005?)

    Carlos,

    Fiz os procedimento e nada.

     

    Sobre os protocolos, no servidor ja habilitei todos os protocolos.

    Lembrando que eu eu tenho estacoes XP, com as mesmas configurações de rede, mascara, gateway, dns, grupo de trabalho, etc...

    E nestas estacoes XP funciona sem problemas...

     

     

     

    quinta-feira, 12 de agosto de 2010 12:35
  • RegMarques,

    Correto o Browser é a partir do 2005, nao me atendei que  o seu é 2000, se o telnet nao esta conectando vc pode esta sendo bloqueado pelo fireall... tente liberar a porta 1433 no vista

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba
    quinta-feira, 12 de agosto de 2010 12:43
    Moderador
  • Liberei a porta de saida no firewall do vista.. e memo assim nao deu certo.

    Continua dando acesso negado.

     

     

    quinta-feira, 12 de agosto de 2010 19:02
  • Só mais uma variavel...

    Nesta maquina Vista quando digito no windows explorer \\ip_do_servidor\c$ ele pede a senha, e eu consigo acessar os arquivos do c$ do servidor...

    Apos fazer isto a conexao via ODBC passa a funcionar...

    Mais se eu reiniciar a maquina.. para de funcionar..

     

     

    quinta-feira, 12 de agosto de 2010 19:05
  • Seu problema é de segurança.

    Seria facilmente resolvido se tivesse um servidor de domínio.

     

    Como não é essa a situação faça o seguinte: Mapeie uma unidade de rede no servidor usando a opção fazer logon com outro usuário. Coloque o usuário que tem acesso a este compartilhamento. Marque a opção de salvar senha. E marque a opção de reconectar ao fazer logon.

     

    quinta-feira, 12 de agosto de 2010 19:19
  • Carlos, cheguei a cogitar esta "solução".

     

    Imagine esta situação..  eu tenho um dominio, mais quero isolar o meu sql server, deixar ele fora do dominio..

    Entao eu conseguiria acessar o SQL de estacoes Vista?

    Tem alguma coisa neste meio campo que tem que configurar...

     

     

    • Editado RegMarques quinta-feira, 12 de agosto de 2010 19:30 correcao
    quinta-feira, 12 de agosto de 2010 19:29
  • Pela minha experiência, se a máquina não está no domínio para que possa receber a autenticação do usuário a única forma é esse usuário ter acesso a algum compartilhamento da mesma.

     

    Não sei se os colegas mais graduados aqui do fórum sabem de alguma outra solução.

    quinta-feira, 12 de agosto de 2010 21:07
  • Tenta criar um script usando o mapadmin.

    http://technet.microsoft.com/pt-br/library/cc759533(WS.10).aspx


    Regards...Emanuel Peixoto. Press Yes if the post is useful.
    quinta-feira, 12 de agosto de 2010 21:29
  • certo, mais estou usando autenticacao mista  e estou me conectando como SA
    quinta-feira, 12 de agosto de 2010 23:13
  • Boa noite RegMarques, tudo bem?

    Tudo no SO executa sobre um contexto de usuário. Ou seja, qualquer objeto tem que ter um dono, seja o usuário logado no sistema (Quando abrimos o notepad por exemplo).

    O serviço do sql provavelmente está configurado com um usuário local service, ou, usuário criado na máquina. Tá.. o que acontece então?

    Quando você tenta conectar com o vista, ele envia como contexto de usuário o usuário network, que é negado pelo servidor.

    Agora por que ele é negado e no xp não?

    Bom para ter estes detalhes, recomendo utilizar a ferramenta porcmon, para identificar exatamente sob qual contexto a conexão está sendo enviada. Depois, devemos observar as dlls movimentadas no registro e identificar se o problema está sendo causado por contexto do usuário ou problemas com timezone entre os servidores, que podem gerar problemas.

    Se o serviço estiver com o usuário local service, isto significa que suas credenciais estão chegando nulas.

    Verifique as contas e reporte para que possamos ajudá-lo.

    Obrigado

    Atenciosamente,

    Dobereiner Miller Silva Rodrigues

    sqlinternal.blogspot.com


    Aquilo que sou é aquilo que me foi outorgado
    • Marcado como Resposta RegMarques segunda-feira, 27 de setembro de 2010 14:13
    quinta-feira, 12 de agosto de 2010 23:32
  • RegMarques,

    Em Windows temos dois tipos de autenticação: Kerberos and NTLM.

    Kerberos: Cliente e servidor deve estar em um domínio, e uma relação de confiança existe, se o cliente e o servidor estão em domínios diferentes, estes dois domínios devem ter uma relação de confiança bidirecional. Neste modo temos a  Service Principal Name(SPNs).

    NTLM: O cliente envia o nome de usuário para o servidor, o servidor gera e envia uma proposta para o cliente, o cliente criptografa a proposta com a senha do usuário, e envia ao servidor uma resposta. Se for uma conta de usuário local, o servidor validar a resposta do usuário, olhando para o Security Account Manager, se for uma conta de usuário de domínio do servidor, será encaminhar a resposta ao controlador de domínio para validação e em seguida, construir um token de acesso e estabelecer uma sessão para a uso. 

    Geralmente Kerberos é usado por padrão e caso a mesma falhe é utilizado o NTLM. para força o SQL Server usar a NTLM vocè em que usar conexao pelo protocolo Named pipes. adicione "np" como prefixo no server name ex: np:seuServidor.

    Como você esta utilizando SQL Server 2000. Acredito que a melhor solução é usar autenticação SQL Server e usar Named Pipes ou pensar na solução do "Emanuel Peixoto". 

    []´s

     Leivio Fontenele www.dbaninja.com


    MCP | MCTS | MCITP - DBA SQL Server Sênior www.dbaninja.com | www.cleverdata.com.br

     

    sexta-feira, 13 de agosto de 2010 16:58
  • Pra fechar o post.

    Não consegui precisar qual era o real problema, mais de acordo os sintomas e os comentários postados. Ficou claro que era permissão do usuário de rede.

    Bom, o serviço do SQL 2000 estava subindo com o usuário "Serviço Local", tenho certeza que se fosse alterado para o usuário "Serviço de Rede", tudo se resolveria, mais como é SQL 2000 resolvi não correr o risco de fazer esta alteração.. (se fosse o SQL2005 faria sem medo)

     

    Então.. para resolver o problema de vez...refiz o servidor já na versão 2005.

    that is it.

     

    Obrigado a todos.

     

    segunda-feira, 27 de setembro de 2010 14:12