SQL intégré de sécurité en utilisant le nom de l'ordinateur au lieu du nom d'utilisateur
Je suis en train de SQL Express instance sur le même réseau, l'authentification avec mon nom de domaine de l'utilisateur. Il fonctionne très bien avec l'Authentification Windows dans SSMS. J'ai vérifié que je peux utiliser la base de données MyDB, y compris l'édition de tables.
Cependant, lorsque j'essaie de la chaîne de connexion suivante:
Server=ipaddress\SQLExpress; Database=MyDB; Integrated Security=SSPI;
Je remonte une erreur:
Cannot open database "MyDB" requested by the login. The login failed.
Login failed for user 'ROMANIA\MONSTER2$'
Le problème est que MONSTER2 est le nom de mon ordinateur, pas mon nom d'utilisateur. (La ROUMANIE est le domaine). Ce que je fais mal?
[Edit] j'ai oublié quelque chose qui pourrait être pertinente: je suis en train d'essayer d'ouvrir la connexion à partir d'un webservice en cours d'exécution sur mon ordinateur.
- Vous devez configurer votre webservice pour s'exécuter comme un nom (plutôt que la machine locale, qu'il semble l'être)
- Quel ennuyeux caprice. Merci de poster cette question. M'a beaucoup aidé.
Vous devez vous connecter pour publier un commentaire.
Votre service web est en cours d'exécution en vertu de la
NT AUTHORITY\Network Service
contexte de sécurité. Cela entraînera le processus de utilisation de l'hôte de la machine compte lors de l'accès aux ressources du réseau dans le domaine.Vous devrez configurer le service web pour fonctionner avec votre identité de domaine.
Si vous êtes l'hébergement de votre service web dans IIS, vous pouvez le faire par le biais de l'usurpation d'identité. Voici un exemple:
C'est parce que votre serveur web n'est pas configuré pour l'utilisation de l'identité de la personne qui utilise le service, mais plutôt l'identité de l'ordinateur, il est en cours d'exécution sur.
Vérifier si votre site web.config pour le service web contient:
<authentication mode="Windows" />
J'avais besoin de faire les deux dans ma situation: