Nenhum processo está na outra extremidade do tubo (SQL Server 2012)

92

Eu tenho este erro:

A connection was successfully established with the server, but then an error occurred
during the login process. (provider: Shared Memory Provider, error: 0 - No process is
on the other end of the pipe.)

(Microsoft SQL Server, Error: 233)

Eu sei, há perguntas semelhantes neste site, e a resposta é habilitar TCP / IP e tubos. Mas eu habilitei ambos e ainda não funciona:

Erro MSSQL

Estou usando o Microsoft SQL Server 2012 e o usuário tem permissões totais.

Iter Ator
fonte
tente pinal dave solutions blog.sqlauthority.com/2009/05/21/…
GeoVIP
Isso funcionou para mim quando me reconectei da autenticação do servidor para a autenticação do Windows.
ganji raajkumar
1
O que funcionou para mim (sql express 2016) ... Removendo autenticação mista, deixando apenas o Windows auth, reiniciando o serviço, mude de volta para a autenticação mista, reinicie o serviço. até que eu fiz isso, nada corrigiu o erro Nenhum processo
Rostol
1
Para saber o que vale, verifique a string de conexão em seu arquivo de configuração. Para mim, alguém modificou um dos nomes de servidor e fez o check-in. Meu código estava tentando acessar um banco de dados que não existia em meu servidor.
camainc

Respostas:

120

O servidor foi configurado para autenticação do Windows apenas por padrão. Não há nenhuma notificação de que a origem dos erros é essa, então é difícil descobrir. O SQL Management Studio não alerta, mesmo se você criar um usuário apenas com autenticação SQL.

Portanto, a resposta é: Mude da autenticação do Windows para a autenticação SQL :

  1. Clique com o botão direito no nome do servidor e selecione properties;
  2. Selecione a securityguia;
  3. Ative o SQL Server and Windows Authentication mode;
  4. Reinicie o serviço SQL Server.

Agora você pode se conectar com seu login / senha.

Iter Ator
fonte
5
A opção foi marcada corretamente, então marquei 'Autenticação do Windows', reiniciei o serviço e depois marquei 'Autenticação do Windows + Autenticação SQL' para corrigir o problema. Tão feliz!
Groco,
2
Para esclarecer o comentário de @ Groco: Faça login usando Windows Authentication>> Clique com o botão direito no seu servidor >> Properties>> Security(Abaixo Select a page) >> Abaixo Server Authenticationselecione SQL Server and Windows Authentication mode. Feche o SQL Server Management Studio, reinicie o serviço do SQL Server e tente fazer logon novamente.
Minh Tran
1
O problema que eu tinha era que Server Authenticationestava definido como Windows Authentication mode. E independentemente da senha correta inserida, sempre fui saudado com A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.). Em todo o erro, consegui fazer login usandoWindows Authentication
Minh Tran
muito obrigado. reiniciar o serviço Sql corrigiu meu problema.
user1282609
57

Para resolver isso, conecte-se ao SQL Management Studio usando a Autenticação do Windows, clique com o botão direito do mouse em Propriedades do nó do servidor-> Segurança e ative o SQL Server e o modo de Autenticação do Windows. Se você estiver usando 'sa', certifique-se de que a conta esteja habilitada. Para fazer isso, abra 'sa' em Logins e veja o Status.

habilitar administrador sa

Se isso não funcionar, pode ser necessário reinstalar o SQL Server

Nzchris
fonte
Depois de fazer isso, reinicie o SQL Server. Em seguida, tente fazer o login.
Webucator,
25

Além disso, você pode tentar ir para serviços e reiniciar sua instância do servidor Sqlinsira a descrição da imagem aqui

Sem Nome
fonte
3
Isso resolveu meu problema depois de tentar todas as outras correções.
mini998
Uh, isso não deveria vir com um grande rótulo de aviso que reiniciar o serviço do servidor sql só porque você não consegue se conectar irá interromper outras coisas que foram conectadas com sucesso?
undrline em
Isso funcionou muito bem para mim. Eu posso ver como é fácil para as pessoas negligenciarem a consideração dessa solução.
TechnicalTim
17

Então, eu tive isso recentemente também, para segurança integrada. Acontece que meu problema era bastante simples de consertar, mas principalmente porque eu tinha esquecido de adicionar "Trusted_Connection = True" à minha string de conexão.

Sei que pode parecer bastante óbvio, mas fiquei trabalhando por 20 minutos ou mais, até que percebi que havia copiado o formato da string de conexão de connectionstrings.com e que aquela parte da string de conexão estava faltando.

Simples e me sinto um pouco maluco, mas foi a resposta para mim.

Joe Walters
fonte
Tentei todos os comentários, mas não funcionou. Sua solução funcionou perfeitamente para mim. Muito obrigado.
Royal.O
esta foi a última coisa que tentei depois que todas as outras coisas de verificação de tcp estão habilitadas, adicionando autenticação de modo misto e reiniciando o serviço do navegador sql e funcionou. obrigado
Myke Black,
10

Outro motivo para esse erro pode ser o nome do banco de dados incorreto ou inexistente.

Forçar a conexão TCP / IP (fornecendo em 127.0.0.1vez de localhostou .) pode revelar o verdadeiro motivo do erro. No meu caso, o nome do banco de dados especificado na string de conexão estava incorreto.

Então, aqui está a lista de verificação:

  • Certifique-se de que o Named Pipe esteja habilitado no gerenciador de configuração (não se esqueça de reiniciar o servidor).
  • Certifique-se de que o banco de dados ao qual você está se conectando existe.
  • Certifique-se de que a autenticação do SQL Server (ou modo misto) esteja habilitada.
Mohammad Dehghan
fonte
o que aconteceu com o gerente de configuração no expresso 2016? Não vejo disponível? Oh, eu tenho que executar SQLServerManager13.msc agora
Kirsten Greed de
Quando mudei para 127.0.0.1, recebi a mensagem de erro Message = Ocorreu um erro relacionado à rede ou específico da instância ao estabelecer uma conexão com o SQL Server. O servidor não foi encontrado ou não estava acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. (provedor: Interfaces de rede SQL, erro: 26 - Erro ao localizar servidor / instância especificada) Fonte = Core .Net SqlClient Data Provider
Kirsten Greed
1
@kirsteng Verifique suas instâncias do SQL Server instaladas. Você instalou uma instância padrão (MSSQLSERVER)?
Mohammad Dehghan
A autenticação do SQL Server em modo misto fez isso por mim. Pessoal, se você fizer uma nova instalação do SQL Server Express, quando quiser adicionar um usuário para suas necessidades de programação, você precisa alterá-lo para o modo misto, caso contrário, apenas a autenticação do Windows estará disponível.
Eduardo
Isso (meio que) funcionou. Assim que mudei o absurdo localdb para 127.0.0.1, ele passou.
Eric
9

Verifique isso também insira a descrição da imagem aquiverifique também a configuração TCP / IP, Nomes PipeLine e memória compartilhada ativada

Muhammad Bilal
fonte
7

Se estiver tentando fazer login com credenciais SQL, você também pode tentar alterar o LoginMode para SQL Server no registro para permitir a autenticação do SQL Server e do Windows.

  1. Abrir regedit
  2. Vá para a chave da instância SQL (pode variar dependendo do nome da instância): Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL14.SQLEXPRESS \ MSSQLServer \
  3. Defina LoginMode para 2

insira a descrição da imagem aqui

  1. Reinicie o serviço SQL e o SQL Server Management Studio e tente novamente.
Gotorg
fonte
esta é a resposta mais adequada.
sushh
5

Enfrentei esse problema pela segunda vez e todas as respostas anteriores falharam. Felizmente, a seguinte solicitação resolveu o problema:

Alter login [user] with CHECK_POLICY = OFF
go

Alter login [user] with CHECK_POLICY = ON
go
Groco
fonte
4

Para mim, a senha do meu usuário de login expirou e recebi a mesma exceção. Então eu loguei no modo de autenticação do Windows e alterei a senha do usuário associado, e isso resolveu meu problema.

Bence Végert
fonte
você salva meu dia !!
aluno em
3

Também tinha esse erro, a causa era simples, mas não óbvia: senha incorreta. Não sei por que não recebi apenas "Falha no login" do servidor SQL 2016 recém-instalado.

Stefan
fonte
3

Sim, esse erro pode muito bem ser "algo falhou, boa sorte para descobrir o que" - no meu caso, era um nome de usuário errado. SQL Server 2019 RC1.

Anssssss
fonte
2

Eu tenho o mesmo problema "Uma conexão foi estabelecida com sucesso com o servidor, mas então ocorreu um erro durante o processo de login. (Provedor: Provedor de memória compartilhada, erro: 0 - Nenhum processo está na outra extremidade do tubo.)"

Minha conexão é:

servidor = POS06 \ SQLEXPRESS; AttachDbFilename = C: ... \ Datas.mdf; Catálogo inicial = Dados; ID do usuário = sa; Pwd = 12345; Tempo limite de conexão = 10;

Mas meu SQL é POS06 \ MSQL2014

Altere a string de conexão para

servidor = POS06 \ MSQL2014; AttachDbFilename = C: ... \ Datas.mdf; Catálogo inicial = Dados; ID do usuário = sa; Pwd = 12345; Tempo limite de conexão = 10;

funcionou.

Doan bien
fonte
0

certifique-se de ter especificado o usuário em Segurança-> Logins, se não - adicione-o e tente novamente.

Elkoo
fonte
0

Siga a outra resposta e, se ainda não estiver funcionando, reinicie o computador para reiniciar efetivamente o serviço do SQL Server no Windows.

cschaefer
fonte
Normalmente, você também pode reiniciar o serviço SQL para seu banco de dados específico, localizando-o emservices.msc
Zimano 01 de
0

Sempre tente fazer login usando essas credenciais com o SQL Management Studio. Isso pode revelar mais alguns detalhes que você não obtém em tempo de execução em seu código. Verifiquei a autenticação SQL + Windows, reiniciei o servidor mas ainda não tive sorte. Depois de tentar fazer login usando o SQL Management, recebi este prompt:

captura de tela

De alguma forma, a senha expirou, embora o login tenha sido criado alguns minutos antes. De qualquer forma, nova senha definida, string de conexão atualizada e está tudo bem.

CyberDude
fonte