0

Environnement & DétailsMessage d'erreur d'exécution de base de données: L'accès au serveur distant est refusé car aucune connexion mappage existe

  • Environnement - SQL Server 2014.
  • Tous les DB de participent à groupe de disponibilité .
  • Pour vous connecter au nœud Lecture seule du serveur, nous avons créé le serveur lié sur les deux nœuds.
  • En interne, nous avons fourni le nom DNS du serveur et "ApplicationIntent = ReadOnly" comme partie de la chaîne de connexion liée. Le serveur lié lit toujours les données du noeud secondaire/lu.
  • Le serveur lié utilise l'utilisateur SQL [ReadOnly]. Cet utilisateur a l'autorisation de lecteur de données sur la base de données sélectionnée.
  • Ci-dessus Serveur lié - a bien fonctionné. Et nous utilisons le serveur lié dans les travaux SQL, qui s'exécute sous le contexte "sa".

Problème

  • Je développe pipeline ADF. Pour le même, créé l'utilisateur SQL - "adfuser" sur le serveur SQL. Cet utilisateur dispose d'un lecteur de données et d'autorisations d'écriture de données sur la base de données requise.
  • Maintenant, j'essaie de suivre la requête dans le contexte 'adfuser'. SELECT Col1, Col2 FROM [ReadOnly] .DB.dbo.TableA

Il jette une erreur - opération de base de données a échoué sur le serveur « Nom du serveur » avec le numéro d'erreur SQL « 7416 ». Message d'erreur de l'exécution de la base de données: L'accès au serveur distant est refusé car aucun mappage de connexion n'existe.

Des solutions?

Répondre

0

Vous devez ajouter "ID utilisateur = nom d'utilisateur" dans la chaîne du fournisseur sur votre serveur lié lors de sa création.

EXEC master.dbo.sp_addlinkedserver @server = N’LinkServerName’, @provider=N’SQLNCLI’,@srvproduct = ‘MS SQL Server’, @provstr=N’SERVER=serverName\InstanceName;User ID=myUser‘ 

vous pouvez en lire plus ici: https://blogs.technet.microsoft.com/mdegre/2011/03/10/access-to-the-remote-server-is-denied-because-no-login-mapping-exists/

+0

Merci beaucoup !!. Cela a fonctionné pour moi. –