2011-03-25 5 views
1

J'ai installé une nouvelle application Web qui accède à une base de données SQL Server sur un serveur différent. J'utilise l'authentification Windows et obtenir l'erreur:ASP.NET accédant à un serveur SQL sur un serveur différent

Échec de la connexion utilisateur XXX

Lorsque je tente de mettre identity impersonate="true" dans le fichier web.config, il jette juste une erreur

Échec de la connexion pour un utilisateur anonyme

De plus, j'utilise l'authentification par formulaire pour valider l'utilisation rs de mon site Web et en utilisant un pool d'applications différent.

Mise à jour: chaîne de connexion essentiellement comme suit:

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI; 

Mise à jour:

Mon répertoire virtuel a l'authentification anonyme et l'authentification Windows activée.

+2

S'il vous plaît, montrez-nous votre chaîne de connexion! Nous ne pouvons pas lire votre écran (ni votre esprit) ..... vous devez nous aider à vous aider " –

+2

Le compte que IIS a été configuré pour utiliser pour que votre site s'exécute sous un compte réseau (à partir d'Active Directory, pas un compte d'ordinateur local) ont des droits de sécurité sur la base de données SQL Server. IIS utilise par défaut un compte local pour s'exécuter, ce qui signifie qu'il ne sera pas possible d'utiliser l'authentification Windows sur la connexion SQL Server, car la boîte SQL Server n'aura pas de visibilité sur ce compte. serveur Web. –

+0

@marc_s: Fondamentalement comme ceci: "Source de données = myServerAddress, catalogue initial = myDataBase, Integrated Security = SSPI;" – acermate433s

Répondre

0

Il est difficile de vous fournir une réponse exacte car vous n'avez pas fourni votre chaîne de connexion ou vos informations sur votre configuration SQL Server. Votre meilleur pari est de regarder la configuration IIS et de déterminer quel utilisateur tente d'accéder aux différents SQL Server. Vous devez ensuite donner accès à ce compte à la base de données. C'est un problème courant et la plupart des modifications doivent se produire dans SQL Server, sauf si vous pouvez modifier le compte sous lequel le serveur Web s'exécute.

+0

Fondamentalement, ma chaîne de connexion est comme suit: "Source de données = myServerAddress; Catalogue initial = myDataBase; Integrated Security = SSPI;" – acermate433s

3

En règle générale, ASP.NET s'exécute en tant que compte anonyme. Pour accéder à un serveur SQL distant à l'aide de l'authentification intégrée (SSPI), vous devez avoir une présence un peu plus "permenant". Un moyen simple serait de déplacer le pool d'applications pour utiliser le compte intégré NETWORK SERVICE. Un peu plus délicat serait d'utiliser un compte nommé. Du côté serveur SQL de l'équation, vous devrez attribuer le même compte (correspondant à user/pass ou NETWORK SERVICE) aux autorisations appropriées à votre base de données.

Votre administrateur de base de données devrait pouvoir vous aider.

+0

Le pool d'applications utilise déjà le SERVICE RÉSEAU. – acermate433s

+1

Ensuite, vous devez donner des droits NETWORK SERVICE sur le serveur SQL et vous devriez être prêt à partir. –

Questions connexes