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é?
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.
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
@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.
Ce problème doit être traité différemment selon la configuration du serveur.
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
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
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.