La question ici est différente de 1 & 2
Lorsque je tente de me connecter à une base de données SQL Server qui se trouve sur un autre système du réseau, les deux sont dans un groupe de travail, lorsque je tente de me connecter à une instance SQL Server 2008 à l'aide de SQL Server Management Studio avec authentification Windows, je me connecte.
Mais lorsque j'essaye de me connecter depuis mon application, j'obtiens l'erreur suivante
(Échec de la connexion. La connexion provient d'un domaine non approuvé et ne peut pas être utilisée avec l'authentification Windows.) Native = 18452).
Si SQL Server Management Studio peut se connecter, que faudrait-il pour que mon application se connecte?
Étant donné que vous exécutez dans un groupe de travail, la seule authentification possible est celle utilisant 'comptes NT en miroir' , ce qui signifie que le processus essayant de s'authentifier doit s'exécute sous une identité qui est "mise en miroir" sur l'hôte qui authentifie le processus. Les comptes en miroir sont des comptes locaux distincts avec un nom et un mot de passe identiques sur les deux hôtes effectuant l'authentification.
Il faut donc que vous exécutiez SSMS à partir d'un compte qu'il est en miroir sur l'hôte SQL Server (par exemple. <computername>\Administrator
, qui est reflété par le <sqlhost>\Administrator
et a le même mot de passe). Notez que l'UAC n'a rien à faire ici (c'est-à-dire running as administrator
n'aidera pas).
Votre application s'exécute probablement sous un autre compte local (par défaut IIS appool peut-être?) Et le compte sous lequel l'application s'exécute n'est pas mis en miroir sur l'hôte SQL Server.
Votre meilleure solution consiste à abandonner le réseau de fortune et à déployer un AD (domaine) approprié. En attendant, assurez-vous d'exécuter votre application sous un compte qui est en miroir sur la machine hôte SQL Server.
Si vous utilisez Windows 7, vous devrez peut-être "exécuter en tant qu'administrateur". Cela permettra à l'application de réutiliser vos informations d'identification Windows et de les transmettre au serveur SQL. Sinon, vous transmettrez les informations d'identification d'invité à SQL Server.