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é.
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:
<!-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.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
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.
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.
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.
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é.
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.
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.
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.
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.
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.
j'ai juste couru dans ceci et l'ai réparé en faisant 2 choses:
- 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
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
où 1234 était le numéro de port utilisé par l'exemple (le mien n'était pas une instance par défaut).
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.
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