Estoy luchando para conseguir una conexión de SQL Server desde Una máquina a máquina B que está ejecutando SQL Server.

Que he buscado en Google ampliamente y todas las cosas que he encontrado no han funcionado. Tampoco se llevará paso a paso a través del proceso de la solución de este.

No estamos utilizando Kerberos, pero NTLM donde configurado.

El nombre principal de destino es incorrecto. No se puede generar el contexto SSPI

Las máquinas involucradas son (xx se utiliza para ocultar algunos de el nombre de la máquina con fines de seguridad):

  • xxPRODSVR001 – Dominio de Windows Server 2012 Controlador de
  • xxDEVSVR003 – Windows Server 2012 (Esta máquina está generando el error)
  • xxDEVSVR002 – Windows Server 2012 (Esta máquina se está ejecutando SQL Server 2012)

La siguiente SPN están registrados en el DC (xxPRODSVR001). Me han oscurecido el dominio con yyy para propósitos de seguridad:

Registrado Serviceprincipalname para CN=xxDEVSVR002,CN=Computers,DC=yyy,DC=local:

            MSSQLSvc/xxDEVSVR002.yyy.local:49298

            MSSQLSvc/xxDEVSVR002.yyy.local:TFS

            RestrictedKrbHost/xxDEVSVR002

            RestrictedKrbHost/xxDEVSVR002.yyy.local

            Hyper-V Replica Service/xxDEVSVR002

            Hyper-V Replica Service/xxDEVSVR002.yyy.local

            Microsoft Virtual System Migration Service/xxDEVSVR002

            Microsoft Virtual System Migration Service/xxDEVSVR002.yyy.local

            Microsoft Virtual Console Service/xxDEVSVR002

            Microsoft Virtual Console Service/xxDEVSVR002.yyy.local

            SMTPSVC/xxDEVSVR002

            SMTPSVC/xxDEVSVR002.yyy.local

            WSMAN/xxDEVSVR002

            WSMAN/xxDEVSVR002.yyy.local

            Dfsr-12F9A27C-BF97-4787-9364-D31B6C55EB04/xxDEVSVR002.yyy.local

            TERMSRV/xxDEVSVR002

            TERMSRV/xxDEVSVR002.yyy.local

            HOST/xxDEVSVR002

            HOST/xxDEVSVR002.yyy.local

Registrado Serviceprincipalname para CN=xxDEVSVR003,CN=Computers,DC=yyy,DC=local:

            MSSQLSvc/xxDEVSVR003.yyy.local:1433

            MSSQLSvc/xxDEVSVR003.yyy.local

            Hyper-V Replica Service/xxDEVSVR003

            Hyper-V Replica Service/xxDEVSVR003.yyy.local

            Microsoft Virtual System Migration Service/xxDEVSVR003

            Microsoft Virtual System Migration Service/xxDEVSVR003.yyy.local

            Microsoft Virtual Console Service/xxDEVSVR003

            Microsoft Virtual Console Service/xxDEVSVR003.yyy.local

            WSMAN/xxDEVSVR003

            WSMAN/xxDEVSVR003.yyy.local

            TERMSRV/xxDEVSVR003

            TERMSRV/xxDEVSVR003.yyy.local

            RestrictedKrbHost/xxDEVSVR003

            HOST/xxDEVSVR003

            RestrictedKrbHost/xxDEVSVR003.yyy.local

            HOST/xxDEVSVR003.yyy.local

Ahora bien, si sólo el mensaje de error SQL Server era más descriptiva y me dijo que lo principal nombre que estaba tratando de conectar con yo podría ser capaz de diagnosticar esta.

Así que puede que nadie me paso a través de cómo resolver esta o se puede ver algo en lo que he proporcionado que está mal?

Yo sería feliz para generar más información de depuración, sólo dime lo que necesitas.

  • No corremos un servidor DNS interno. Pero para eliminar esto como un problema estás diciendo que debo de «ping-x.x.x.x» o hay otra manera de determinar si hay duplicados?
  • No soy un experto, pero pensé Spn y SSPI fue una de Kerberos cosa? Está usted seguro de que no está utilizando Kerberos?
  • No es que no me puede ver….. Cuando me encontré con SP en SQL Server (Olvide el nombre ahora) es que todo salió como NTLM. ¿Sabes cómo puedo comprobar?
  • Sé que el tema es viejo, así que ahorra tiempo y ejecutar esta herramienta: microsoft.com/en-us/download/…
InformationsquelleAutor TheEdge | 2015-08-31

34 Comentarios

  1. 29

    He tenido este problema con una ASP.NET aplicación MVC en el que estaba trabajando.

    Me di cuenta de que había cambiado recientemente mi contraseña, y yo era capaz de solucionarlo por cerrar la sesión y volver a iniciarla.

    • Este era mi problema. cambia la contraseña. tenía mi cuenta de ejecutar la aplicación de la piscina.
    • cuando tuve este problema, me sali de inicio de sesión de nuevo. Resuelto el problema.
    • Problema Similar. Esto ayudó a mi a mirar hacia atrás en mis acciones. TQ
  2. 20

    Pasé unos par de horas con el mismo problema.
    Resultó, que "Integrated Security=true" causado el problema.

    Intentar eliminar esta param de la cadena de conexión.

    • ¿Cómo se puede eliminar que si la conexión es a través de SSMS?
    • Bien, claramente la eliminación de Integrated Security será evitar este error, porque el error se produce al intentar iniciar sesión con sus credenciales de Windows. Desafortunadamente, la mayoría de las veces, quiero para ser capaz de iniciar sesión con sus credenciales de Windows!
    • mi respuesta a continuación pueden ayudar? Fue debido a una contraseña caducada, me exigía para cambiar mi contraseña, registro de salida y la de regreso en y, a continuación, todo funcionaba con normalidad.
    • Ahorre tiempo y ejecutar esta herramienta: microsoft.com/en-us/download/…
  3. 15

    He recibido este error cuando se conecta a través de SQL Server Management Studio, utilizando la Autenticación de Windows. Mi contraseña ha expirado pero yo todavía no había cambiado. Una vez cambiado, entonces tuve que cerrar sesión y volver a iniciarla para que la máquina estaba trabajando con nuevo credenciales.

  4. 8

    Yo estaba en el registro de Windows 10 con un PIN en lugar de una contraseña. Me he registrado y conectado nuevamente con mi contraseña y fue capaz de conseguir en SQL Server a través de Management Studio.

    • Eso es ridículo. Y funcionó. He perdido tanto tiempo en esto. Gracias!
    • Uy, que no era ella. SSMS hizo un interruptor en mí cuando yo no estaba mirando y me fui a mi cuenta de SQL Server. Pero finalmente he intentado cambiar de utilizar una cuenta de Microsoft para iniciar sesión localmente en el uso de una cuenta local a nivel local. Que hizo el truco, y parece que funciona ahora, incluso si me registro con mi PIN.
    • Sí el uso de la contraseña en lugar del pin también trabajó para mí. +1 para Microsoft.
    • OMG! No puedo creer que esto realmente hizo una diferencia!
  5. 7

    Estaba recibiendo el mismo mensaje de error al intentar a través de la autenticación de windows. Suena ridículo, pero sólo en caso de ayuda a alguien: era porque mi cuenta de dominio se quedó encerrada de alguna manera mientras yo estaba todavía se registra en (!). El desbloqueo de la cuenta fija.

  6. 6

    Sólo para agregar otra posible solución a esta, la más ambigua de errores The target principal name is incorrect. Cannot generate SSPI context. (.Net SqlClient Data Provider) :

    Compruebe que la dirección IP que se resuelve al hacer ping en el Servidor de SQL server es el mismo como el uno en el Administrador de Configuración. Para comprobarlo, abra SQL Server Configuration Manager y, a continuación, vaya a SQL Server Configuración de Red > los Protocolos de MSSQLServer > TCP/IP.

    Asegúrese de que TCP/IP está activado y en la ficha Direcciones IP, asegúrese de que la dirección IP que el servidor resuelve cuando el ping es el mismo que aquí. Que corrige este error para mí.

  7. 5

    De inicio de sesión de tu SQL Cuadro y su cliente y tipo:

    ipconfig /flushdns
    nbtstat -R

    Si eso no funciona, renovar el DHCP en el equipo cliente… Este trabajo para 2 PCs en nuestra oficina.

    • hizo su respuesta en mi máquina cliente y SQL cuadro más ipconfig/release y ipconfig/renew en mi máquina cliente y no me funciona ;(
  8. 3

    El contexto SSPI error definitivamente indica que la autenticación se ha intentado el uso de kerberos.

    Verificación de los registros de eventos de seguridad, si usted está utilizando kerberos debe ver intentos de inicio de sesión con autenticación de paquete: Kerberos.

    La autenticación NTLM puede estar fallando y así de autenticación de kerberos se trata. También puede ver un NTLM intento de inicio de sesión error en el registro de sucesos de seguridad?

    Puede activar el registro de sucesos de kerberos en dev para intentar depurar ¿por qué la kerberos está fallando, aunque es muy detallado.

  9. 3

    Sólo me encontré con esto y se fija por hacer 2 cosas:

    1. La concesión de lectura/escritura servicePrincipalName permisos para la cuenta de servicio a través de ADSI Edit, como se describe en https://support.microsoft.com/en-us/kb/811889
    2. La eliminación de la Spn que existía previamente en el Servidor SQL server cuenta de equipo (en contraposición a la cuenta de servicio) mediante

      setspn -D MSSQLSvc/HOSTNAME.domain.name.com:1234 HOSTNAME

      donde 1234 fue el número de puerto utilizado por la instancia (la mía no era una instancia predeterminada).

    • Me cambié de MS SQL Server instancia de ejecución utilizando NT Service\MSSQLSSERVER a correr como una Cuenta de Servicio Administrada. Después de hacerlo, SSMS podría conectarse a la base de datos localmente en el servidor, pero no de forma remota desde mi portátil. La fijación de la Spn abordado el problema.
  10. 3

    En mi caso, reiniciar SQL Server 2014 (en mi servidor de desarrollo) se ha solucionado el problema.

    • Lo mismo se aplica a SQL Server 2016.
    • Es triste que esto funciona.
  11. 3

    Estaba a cabo pruebas de IPv6 en un cluster de pcs en una red aislada y se topó con este problema cuando he vuelto yo IPv4. Yo había sido jugar en el directorio activo, DNS y DHCP de modo que no tienen idea de lo que me empujó a romper el Kerberos setup.

    He vuelto a probar la conexión fuera de mi software con este truco muy útil para conectar conectividad remota he encontrado.

    https://blogs.msdn.microsoft.com/steverac/2010/12/13/test-remote-sql-connectivity-easily/

    a continuación, después de una breve búsqueda encontró esto en el sitio web de Microsoft
    https://support.microsoft.com/en-gb/help/811889/how-to-troubleshoot-the-cannot-generate-sspi-context-error-message.

    ejecutar la herramienta en el servidor SQL server ver si hay algún problema
    si el estado dice que error a continuación, pulse el botón de reparación que aparece.

    Este problema se ha resuelto para mí.

  12. 2

    He tenido este problema al acceder a la aplicación web. Podría ser debido a que he cambiado la contraseña de windows recientemente.

    Este problema se resolvió cuando he actualizado la contraseña para la aplicación de la piscina donde tengo alojada la web de la aplicación.

  13. 2

    Comprobar su reloj partidos entre el cliente y el servidor.

    Cuando tuve este error de forma intermitente, ninguna de las anteriores respuestas trabajado, entonces nos pareció que el tiempo se había adentrado en algunos de nuestros servidores, una vez que se sincronizan de nuevo el error se fue. Búsqueda de w32tm o NTP para ver cómo sincronizar automáticamente el tiempo en Windows.

  14. 1

    Desde que llegué aquí cuando se está buscando una solución a mi problema, voy a compartir mi solución aquí, en el caso de que otros de la tierra aquí.

    Estaba conectando bien para SQL Server hasta que mi equipo fue trasladado a otra oficina en otro dominio. Entonces, después de que el interruptor, yo estaba recibiendo este error sobre el nombre principal de destino. Lo que fija se conecta a través de un nombre completo tales como: server.domain.com. Y, de hecho, una vez que me conecte al primer servidor de esa manera, yo podría conectarse a otros servidores utilizando sólo el nombre del servidor (sin el título), pero su kilometraje puede variar.

    • Este problema solo me ha pasado cuando he añadido un certificado para la Conexión de SQL. El certificado fue emitido para el FQDN, así que cuando me conecto a FQDN\Instancia, se trabajó.
  15. 1

    Me encontré con este de hoy y quería compartir mi solución, ya que éste es simplemente pasado por alto y es fácil de solucionar.

    Conseguimos nuestra propia rdn y recientemente a rehacer nuestro servidor esquema de nomenclatura. Como parte de eso, debemos de tener actualizado nuestro rdn y se olvidó de ello.

    Una mesa de ping activado el nombre de host correcto, pero una mesa de ping-un devuelve el nombre de host equivocado.

    Fácil solución: cambiar el rDNS, hacer un ipconfig /flushdns, espere 30 segundos (algo que hacer), hacer otra ping -una , a ver que resolver el nombre de host correcto, conecte … de lucro.

  16. 1

    Me encontré con una nueva para este: SQL 2012 alojado en el Servidor de 2012.
    Fue el encargado de crear un clúster de SQL AlwaysOn.

    Cluster fue creado todo el mundo tiene el SSPI mensaje.

    Para solucionar los problemas corrió siguiente comando:

    setspn -D MSSQLSvc/SERVER_FQNName:1433 DomainNamerunningSQLService

    DomainNamerunningSQLService == el dominio de cuenta de que me había propuesto SQL
    Necesitaba un Administrador de Dominio para ejecutar el comando. Sólo uno de los servidores en el clúster tenido problemas.

    A continuación, reinicie SQL. Para mi sorpresa, fui capaz de conectar.

    • Yo tenía este mismo problema, pero no estaba en un clúster. Yo había cambiado el inicio de sesión para el servicio de Motor de SQL a una cuenta de dominio. Tuve que quitar el MSSQLSvc/SERVER_FQNName:* Spn de la cuenta de equipo y, a continuación, agregarlos a la cuenta de usuario que ejecuta el servicio.
  17. 1

    Yo estaba tratando de conectarse a una máquina virtual que ejecuta SQL Server 2015 desde mi laptop en un Visual Studio 2015 Aplicación de Consola. Puedo ejecutar mi aplicación la noche antes y está muy bien. En la mañana me intenta depurar la aplicación y me sale este error. Traté de ipconfig/flush y release + renew y un un montón de basura, pero en fin…

    Reiniciar la VM y reiniciar el cliente. Que fijo que es para mí. Yo debería haber sabido, reiniciar funciona todo el tiempo.

    • Experiencia Similar, SQLServer 2016 en VM. No sé por qué conexiones comenzó a fallar. El reinicio de VM fija sin necesidad de reiniciar el cliente.
  18. 1

    Asegúrese de que «Named Pipes» se habilitan de «SQL Server Configuration Manager». Esto funcionó para mí.

    1. Abrir «Configuración de SQL Server Manager».
    2. Ampliar «SQL Server Configuración de la Red», de la lista de la izquierda.
    3. Seleccione «Protocolos para [Su Nombre de Instancia]».
    4. Clic derecho en «Named Pipes», a partir de la lista de la derecha.
    5. Seleccione «Habilitar»
    6. Reiniciar la Instancia de servicio.
    • Yo tenía el mismo mensaje. Yo estaba tratando de conectar con la IP, así que lo hice como stackoverflow.com/users/8568873/s3minaki, i.e los pasos 1-6 pero me habilitado TCP/IP en lugar de Canalizaciones con Nombre. También bajo IPALL me aclaró TCP puerto Dinámico y configurar el Puerto TCP en lugar. Asegúrese de que ninguna otra instancia se ejecuta este puerto o de la instancia no se reinicie. También necesitaba un usuario de SQL, la Autenticación de Windows no funciona. En SQL Manager de conectar con x.x.x.x\instancia,portnr. es decir 127.0.0.1\SQLEXPRESS,1433
  19. 0

    Me encontré en una variante de este problema, aquí eran las características:

    • Usuario fue capaz de conectarse correctamente a una instancia con nombre, por ejemplo, las conexiones a Server\Instance fueron exitosas
    • Usuario se incapaz de para conectarse a la instancia predeterminada, por ejemplo, las conexiones a Server no pudo con el OP de la captura de pantalla con respecto a SSPI
    • Usuario no es capaz de conectarse por defecto instancia con nombre completo, por ejemplo, las conexiones a Server.domain.com error (tiempo de espera)
    • Usuario no es capaz de conectarse dirección IP sin nombre de instancia, por ejemplo, las conexiones a 192.168.1.134 error
    • Otros usuarios, no en el dominio (por ejemplo, los usuarios que VPN a la red), pero el uso de las credenciales de dominio fueron capaces de conectarse a la instancia predeterminada y la dirección IP

    Así que después de muchos dolores de cabeza tratando de averiguar por qué este usuario único que podía conectar, aquí están los pasos que tomó para arreglar la situación:

    1. Echar un vistazo en el servidor en la lista SPN utilizando

      setspn -l Server

      una. En nuestro caso, dijo Server.domain.com
    2. Añadir una entrada en el archivo hosts se encuentra en C:\Windows\System32\drivers\etc\hosts (ejecutar el Bloc de notas como Administrador para modificar este archivo). La entrada hemos añadido fue

      Server.domain.com Server

    Después de esto, hemos sido capaces de conectarse correctamente a través de SSMS a la instancia predeterminada.

  20. 0

    He tenido este problema en mi servidor sql server. Yo setspn -D mssqlsvc\nombre de host.domainname nombre de host, a continuación, detuve y comencé mi servicio de SQL server.

    Estoy pensando que simplemente detener y comenzar mi servicio de sql habría hecho.

  21. 0

    Yo también tenía este problema en SQL Server 2014 sesión con la Autenticación de windows, para resolver el problema he Reiniciado mi servidor una vez y, a continuación, tratar de iniciar sesión, se trabajó para mí.

  22. 0

    Yo tenía el mismo problema, pero el bloqueo y desbloqueo de la máquina funcionó para mí. A veces, problemas con el firewall va a dar errores.

    No estoy seguro de que va a trabajar para usted o no, solo compartir mi experiencia.

  23. 0

    He tenido el mismo problema. Recientemente he cambiado mi contraseña de windows y mi sitio web estaba tirando el error. Traté de cerrar la sesión e iniciar sesión, pero no funcionó. Entonces me di cuenta de que he configurado mi defaultappppol utilizando mi cuenta en el «custom cuenta» de la sección y he configurado la cuenta de nuevo con la contraseña nueva. Esto hizo que la magia!!! Por favor, hágamelo saber su opinión sobre esta solución.

  24. 0

    He probado todas las soluciones aquí y ninguno de ellos han trabajado todavía. Una solución que funciona es hacer Clic en Conectar, escriba el nombre del servidor, seleccione Opciones, pestaña Propiedades de Conexión. Establece el «protocolo de Red» a «Named Pipes». Esto permite a los usuarios remotos conectarse usando sus credenciales de red. Voy a publicar una actualización cuando llego a una solución.

  25. 0

    Estoy corriendo un Mickey Mouse de pruebas de sistema basado en la SQL.COM.

    Corrí setspn -T sql -F -Q */Servername (en este caso SQL01) en tanto que la máquina no podía conectarse a una máquina que podía. Yo, a continuación, simplemente se quita las entradas adicionales en el equipo con el problema y todos han trabajado, por ejemplo, setspn -D MSSQLSvc/SQL01.SQL.COM:1433 SQL01

  26. 0

    Parece ser problema está relacionado con el Servidor DNS.
    Para resolver este problema, cambie la Dirección IP a ComputerName.

    Ejemplo:
    Cambiar el valor de «10.0.0.10\TestDB» a «YourcomputerName\TestDB»

  27. 0

    No es una solución ideal, yo sólo quería añadir esta referencia en el futuro para nadie ver esta página:

    Yo estaba teniendo este problema tratando de conectarse a una instancia remota de SQL Server usando mi cuenta de dominio, tratando de lo mismo en una instancia alojada en una máquina que funcionaba bien.

    Así que si usted tiene la opción de usar sólo una instancia diferente puede ayudar, pero en realidad no la dirección de cualquiera que sea el problema.

  28. 0

    Voy a añadir esta aquí, ya que me sorprendió y puede ayudar a alguien. Caveat emptor, yo no soy un windows persona, pero había que mirar en un escenario que incluye SQL server.

    He descargado la versión de desarrollo de la completa de SQL Server y se instala en Windows 10. Todas las buenas conexiones locales, nada para el cliente remoto.

    Probado muchos de los de arriba, pero finalmente me di cuenta de que la Autenticación de Windows quería para autenticar remoteclient\miusuario y de ninguna manera autónoma mundo de Windows para crear un mecanismo para autenticar contra (Como yo lo entiendo kerberos). El mensaje de error «Cannot generate SSPI context».

    El uso de la Autenticación de SQL no parecen funcionar bien.

    Finalmente volvi a SQL Server Express, que tiene un modo combinado y entonces yo podría utilizar la Autenticación de SQL de los clientes remotos.

  29. 0

    En mi caso, el problema era la configuración de DNS en el wifi. He quitado la configuración, y les dejó un vacío, y trabajado.

    El nombre principal de destino es incorrecto. No se puede generar el contexto SSPI

  30. 0

    Sólo había un usuario que tiene este error en sólo uno de SQL Server. Resulta que él había almacenado una antigua contraseña en el Panel de Control – Administrador de Credenciales bajo las Credenciales de Windows para el servidor de nombre. Quita la credencial almacenada y funcionó.

  31. 0

    He tenido este problema al intentar conectarse a mi Servidor SQL server 2017 ejemplo, a través de L2TP VPN en un dominio de Windows 10 máquina.

    El problema terminó siendo en mi configuración de red VPN. En la configuración de seguridad, Autenticación, mediante EAP-MSCHAPv2 y en el cuadro de diálogo Propiedades, yo había elegido Automatically use my Windows logon name and password (and domain if any).

    El nombre principal de destino es incorrecto. No se puede generar el contexto SSPI

    Me volví y, a continuación, volver a conectar mi VPN y, a continuación, yo era capaz de conectarse a SQL Server con éxito.

    Creo que este fue el causante de que mi inicio de sesión de SQL (con la cuenta de Windows de seguridad) para el uso de Kerberos en lugar de NTLM, causando el SSPI error.

  32. -1

    Por favor, compruebe los permisos para el mencionado nombre de inicio de sesión en SQL server management studio hacen sysadmin casilla de verificación marcar y, a continuación, hacer Integrated Security=False en el .el archivo config.

    Fuego 2 comandos en la máquina cliente

    1. ipconfig /flushdns

    2. klist de purga.

    instalar kerbarose administrador de configuración en el equipo cliente.

    Finalmente, Reiniciar la máquina cliente, y los principales servicios de SQL server. Ejecutar la aplicación en el equipo cliente. Esto Funciona 100% correctamente.

    • Gracias por esta respuesta – ¿dónde está el .archivo de configuración?
  33. -2

    Integrated Security=false

    Hacer esta bandera falsa en webconfig cadena de conexión. Funcionará!

    • Seguramente diciendo a los usuarios que no para de inicio de sesión a través de la autenticación de Windows debido a sus credenciales de Windows no funcionan no es una solución. Si usted tiene Integrated Security establecido a true, es probablemente porque usted quiere usar (y, en cualquier caso, si su base de datos está configurada para la seguridad integrada, las probabilidades son buenas que usted no se puede acceder sin necesidad de credenciales de Windows–mi propia cuenta no tiene contraseña de inicio de sesión)

Dejar respuesta

Please enter your comment!
Please enter your name here