Le nom principal de la cible est incorrect. Ne peut générer le contexte SSPI

j'ai du mal à obtenir une connexion SQL Server de la machine a à la machine B qui exécute le serveur SQL.

j'ai Googlé largement et toutes les choses que j'ai trouvé n'ont pas fonctionné. Ni qu'ils vous guident étape par étape à travers le processus de résolution.

nous n'utilisons pas Kerberos, mais NTLM était configuré.

enter image description here

les machines concernées sont (xx est utilisé pour masquer une partie du nom de la machine pour des raisons de sécurité):

  • xxPRODSVR001 - Windows Server 2012 Contrôleur De Domaine
  • xxDEVSVR003 - Windows Server 2012 (Cette machine génère l'erreur)
  • xxDEVSVR002 - Windows Server 2012 (Cette machine exécute SQL Server 2012)

les SPN suivants sont enregistrés sur la DC (xxPRODSVR001). J'ai occulté le domaine avec yyy pour la sécurité objectifs:

noms principaux de services enregistrés pour 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

noms principaux de services enregistrés pour 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
<!-Si seulement le message D'erreur SQL Server était plus descriptif et me disait à quel nom principal il essayait de se connecter, je pourrais peut-être le diagnostiquer.

est-ce que quelqu'un peut me montrer comment résoudre celui-ci ou pouvez-vous voir quelque chose dans ce que j'ai pourvu qui est faux?

je serais heureux de générer plus d'informations de débogage, dites-moi ce dont vous avez besoin.

30
demandé sur John R Smith 2015-08-31 14:13:10

27 réponses

j'ai passé quelques heures avec le même problème. Il s'est avéré, que "Integrated Security=true" a causé le problème.

essayez de supprimer ce paramètre de la chaîne de connexion.

16
répondu Anatolyevich 2017-04-28 05:15:13

j'ai eu ce problème avec un ASP.NET l'application MVC sur laquelle je travaillais.

j'ai réalisé que j'avais récemment changé mon mot de passe, et j'ai pu le corriger en me déconnectant et me reconnectant à nouveau.

11
répondu Slothario 2018-08-22 21:36:51

j'ai reçu cette erreur lors de la connexion via SQL Server Management Studio en utilisant L'authentification Windows. Mon mot de passe avait expiré mais je ne l'avais pas encore changé. Une fois changé, j'ai dû me déconnecter et me reconnecter pour que la machine fonctionne en utilisant mes nouveaux justificatifs d'identité.

9
répondu Matt Shepherd 2018-01-08 15:25:50

Juste pour ajouter une autre solution possible à ce plus ambiguë d'erreurs The target principal name is incorrect. Cannot generate SSPI context. (.Net SqlClient Data Provider):

vérifiez que l'adresse IP qui est résolue lors du ping du serveur SQL est la même que celle du Gestionnaire de Configuration. Pour vérifier, ouvrez SQL Server Configuration Manager puis allez dans SQL Server Network Configuration > Protocols for MSSQLServer > TCP / IP.

assurez-vous que TCP/IP est activé et dans L'onglet Adresses IP, assurez-vous que L'adresse IP à laquelle le serveur se résout lors du ping est le même ici. Fixé cette erreur pour moi.

5
répondu Alex 2018-01-29 18:14:24

se connecter à la fois votre SQL Box et votre client et le type:

ipconfig /flushdns
nbtstat -R

si cela ne fonctionne pas, renouvelez votre DHCP sur votre machine client... Cela fonctionne pour 2 pc dans notre bureau.

4
répondu Frank.Germain 2016-11-15 13:40:51

j'ai eu la même erreur en essayant l'authentification windows. Cela semble ridicule, mais juste au cas où cela aiderait quelqu'un d'autre: c'était parce que mon compte de domaine a été verrouillé d'une façon ou d'une autre alors que j'étais encore connecté (!). Déverrouillage du compte fixe.

4
répondu Quester 2018-01-24 09:17:50

je me suis connecté à Windows 10 avec un NIP au lieu d'un mot de passe. Je me suis déconnecté et je me suis reconnecté avec mon mot de passe à la place et J'ai pu entrer dans SQL Server via Management Studio.

3
répondu Don 2018-05-21 15:11:18

l'erreur de contexte SSPI indique clairement que l'authentification est tentée en utilisant kerberos.

vérifiez les journaux d'événements de sécurité, si vous utilisez kerberos vous devriez voir les tentatives de connexion avec le paquet d'authentification: Kerberos.

L'authentification NTLM peut échouer et une tentative d'authentification kerberos est donc en cours. Vous pourriez également voir une tentative D'échec de connexion NTLM dans votre journal des événements de sécurité?

vous pouvez activer kerberos event logging dans dev pour essayer de déboguer pourquoi les kerberos échouent, bien qu'il soit très verbeux.

2
répondu Sarah 2015-09-03 23:42:11

j'ai juste couru dans ceci et l'ai réparé en faisant 2 choses:

  1. l'Octroi de lecture/écriture servicePrincipalName autorisations pour le compte de service à l'aide de l'outil ADSI Edit, comme décrit dans https://support.microsoft.com/en-us/kb/811889
  2. suppression des SPN qui existaient auparavant sur le serveur SQL compte d'ordinateur (par opposition au compte de service) en utilisant

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

    1234 était le numéro de port utilisé par l'exemple (le mien n'était pas une instance par défaut).

2
répondu EM0 2016-07-18 15:03:34

j'ai eu ce problème en accédant à l'application web. Cela pourrait être dû au fait que j'ai changé le mot de passe de windows récemment.

ce problème a été résolu lorsque j'ai mis à jour le mot de passe pour le pool d'applications où j'ai hébergé l'application web.

2
répondu Ramki 2017-07-21 17:04:32

depuis que j'ai atterri ici en cherchant une solution à mon propre problème, je partagerai ma solution ici, au cas où d'autres atterriraient ici aussi.

j'étais en train de connecter fine à SQL Server jusqu'à ce que ma machine soit déplacée dans un autre bureau sur un autre domaine. Puis, après l'échange, j'ai eu cette erreur concernant le nom principal de la cible. Qu'est-ce qui a réparé la connexion à l'aide d'un nom complet comme:server.domain.com