web-dev-qa-db-fra.com

Se connecter à SQL Server avec l'authentification Windows dans un autre domaine

J'essaie de me connecter à un serveur SQL distant sur un VPN dans un domaine différent. Lorsque j'entre le nom du serveur sur le serveur SQL et que je choisis des paramètres de connexion supplémentaires pour ajouter des éléments supplémentaires nécessaires à mon école:

Integrated Security=SSPI; User ID=DOMAIN\username; Password=Password

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.

83
stergosz

Vous essayez de transmettre les informations d'identification Windows en texte brut à partir de la chaîne de connexion d'une application. Ce n'est tout simplement pas comme cela que l'authentification Windows fonctionne, et cela va largement à l'encontre de l'objectif.

Vous ne pouvez pas simplement créer le même nom d'utilisateur avec le même mot de passe dans votre propre domaine et vous attendre à ce que cela fonctionne comme par magie. Le nom de domaine fait toujours partie de la validation - votre machine doit soit faire partie du domaine, soit le domaine dans lequel votre machine se trouve doit être approuvé par le domaine de l'école.

La seule solution de contournement que je connaisse est pour SSMS (et cela fonctionne aussi pour d'autres applications, comme Plan Explorer et SentryOne ), et c'est le runas /netonly astuce décrite dans cette réponse . Cela induit Windows à lancer SSMS en tant que connexion que vous spécifiez, plutôt que la vôtre (ce n'est pas quelque chose que vous pouvez définir dans la boîte de dialogue Propriétés de connexion de SSMS, c'est la façon dont vous devez lancer SSMS à partir de la ligne de commande ou d'un raccourci):

runas /netonly /user:domain\username "C:\path_to\ssms.exe"

Cela vous demandera votre mot de passe dans le domaine distant. Il ressemblera à l'utilisation de vos informations d'identification Windows locales, mais ce n'est pas le cas .

Cela devrait fonctionner avec n'importe quelle application, y compris Visual Studio.

Vos options sont donc:

  • que l'université vous permette de joindre votre machine au domaine
  • demander à l'université d'ajouter votre domaine en tant que domaine de confiance
  • avoir une boîte de saut à l'intérieur du VPN qui vous permet de RDP et d'utiliser des outils se connectant directement à la machine SQL Server
  • utiliser l'authentification SQL
  • utilisez le runas /netonly astuce avec SSMS ou Visual Studio
79
Aaron Bertrand

Il existe une autre méthode, que j'utilise maintenant de préférence au runas /netonly méthode.

Vous pouvez ajouter les informations d'identification à votre profil dans Windows à l'aide du gestionnaire d'informations d'identification trouvé dans le panneau de configuration de Windows.

  1. Ouvrir le gestionnaire d'informations d'identification
  2. Cliquez sur "Ajouter un identifiant Windows"
  3. Remplissez le champ "Internet ou adresse réseau" avec le nom et le numéro de port de l'instance SQL pour laquelle vous souhaitez stocker les informations d'identification.

    Exemple: UniServer:1433 (1433 est le port par défaut, vous devrez peut-être un autre port, surtout si vous vous connectez à une instance nommée)

  4. Remplissez le "Nom d'utilisateur" (n'oubliez pas d'inclure le domaine, par exemple MYDOMAIN\MYUSER)
  5. Remplissez le "mot de passe"
  6. Cliquez sur OK

Si le nom du serveur, le port et les informations de connexion sont corrects, vous devriez maintenant pouvoir utiliser l'authentification Windows à partir de la plupart des outils client, SSMS, Excel, peu importe. Ils utiliseront tous les informations d'identification stockées.

Conseil: Parfois, vous devez utiliser le FQN pour le serveur lors de l'ajout des informations d'identification. par exemple. UniServer.UniDomain.org:1433, tout dépend des spécificités de votre réseau.

Voici une démo rapide de la méthode: http://youtu.be/WiVBPsqB9b4

C'est une capture d'écran de moi essayant (et échouant) de me connecter à un serveur SQL fonctionnant dans un VM depuis mon bureau), puis en ajoutant les informations d'identification requises et en réessayant - avec succès.

Conseil: utilisez la commande "cmdkey/add" pour créer un script et mettre à jour les informations d'identification stockées.

115
Mister Magoo