web-dev-qa-db-fra.com

SQL Server 2012 ne peut pas se connecter avec un compte d'ordinateur

Nous migrons un site IIS/SQL Server de 2008 à 2012 et j'ai un problème d'authentification. Nous utilisons l'authentification Windows pour nous authentifier en tant que DOMAIN\COMPUTER$, mais cela ne fonctionne pas, ce qui donne une erreur disant:

La connexion a échoué pour l'utilisateur 'DOMAIN\COMPUTER $'. Motif: impossible de trouver une connexion correspondant au nom fourni. [CLIENT: <machine locale>]

J'ai vérifié que le compte existe, et même supprimé et recréé

create login "DOMAIN\COMPUTER$" from windows

Si je recommence, j'obtiens la réponse:

Msg 15025, niveau 16, état 2, ligne 1
Le principal du serveur 'DOMAIN\COMPUTER $' existe déjà.

(DOMAIN\COMPUTER remplace le vrai domaine et le nom de l'ordinateur)

Il semble donc que le site interroge le serveur SQL, mais le serveur SQL ne regarde pas très attentivement ses connexions.

Qu'est-ce que j'ai raté?

11
alt

J'ai réussi à le faire fonctionner en modifiant le site dans IIS pour utiliser le Application Pool Identity, puis en changeant l'identité du pool d'applications en Network Service. N'hésitez pas à commenter tout problème de sécurité que cela pourrait soulever.

1
alt

Il s'agit très probablement pas du tout du DOMAINE\ordinateur $. Ce message est connu pour être trompeur. Je pense que tout ce qu'il veut, c'est que "NT AUTHORITY\NETWORK SERVICE" soit autorisé à accéder au serveur. Ouvrez les propriétés de connexion SQL Server et ajoutez ce compte. Vérifiez également quel utilisateur est utilisé dans le IIS pour usurper l'identité d'un utilisateur anonyme, cela devrait être quelque chose comme "IUSR_ServerName". Accordez également l'accès à cet utilisateur

6
cha

@Cha et @alt ont tous deux de bons indices - le message d'erreur est trompeur et Application Pool Identity est impliqué (enfin, du moins c'était dans mon cas).

Si votre IIS pool d'applications de l'application utilise Application Pool Identity, le compte d'utilisateur que vous devez ajouter à SQL Server est IIS APPPOOL\your_app_pool_name. Remarque: n'utilisez pas le Search... bouton dans les propriétés de connexion pour trouver cet utilisateur - il le trouvera, mais le remplacera par MACHINE_NAME\your_app_pool_name qui ne fonctionnera pas - tapez simplement IIS APPPOOL\your_app_pool_name comme nom de connexion.

6

Ce problème doit être traité différemment selon la configuration du serveur.

  1. SQL et IIS serveur sont sur la même machine.

    une. changez l'identité du pool d'applications en Network Service

    b. ajouter NT AUTHORITY\NETWORK SERVICE à votre connexion au serveur SQL

  2. SQL et IIS serveur sont sur une machine différente.

    une. ajouter un compte d'ordinateur, DOMAIN\computer-name$, à votre connexion au serveur SQL.

    b. l'identité du pool d'applications reste Application Pool Identity

3
maxisam

J'obtenais la même erreur. Erreur de connexion: 18456, gravité: 14, état: 5. La désactivation de CEIP de SQL Server Error and Usage Reporting a résolu le problème pour moi.

0
Ayan Mullick