数据库执行出现错误消息:拒绝访问远程服务器,因为不存在登录映射

时间:2017-04-26 11:55:44

标签: sql-server database sql-server-2008 sql-server-administration

环境&详情

  • 环境 - SQL Server 2014。
  • 所有DB都参与其中 可用性组。
  • 要连接到Server的只读节点,我们 在两个节点上创建了链接服务器。
  • 在内部,我们提供了服务器DNS名称和“ApplicationIntent = ReadOnly”作为链接连接字符串的一部分。链接服务器始终从辅助/读取节点读取数据。
  • 链接服务器正在使用[ReadOnly] SQL用户。此用户对所选数据库具有数据读取者权限。
  • 以上链接服务器 - 工作正常。我们在SQL作业中使用链接服务器,它在“sa”上下文中运行。

问题

  • 我正在开发ADF管道。为此,在SQL服务器上创建了SQL用户 - “adfuser”。该用户具有数据读取器,所需数据库的数据写入权限。
  • 现在,我正在尝试在'adfuser'上下文后面进行查询。

    SELECT [Col1],Col2 FROM [ReadOnly] .DB.dbo.TableA。

这是一个错误 - 数据库操作在服务器“服务器名称”上失败,SQL错误号为“7416”。数据库执行出现错误消息:拒绝访问远程服务器,因为不存在登录映射。

任何解决方案?

1 个答案:

答案 0 :(得分:0)

您需要在链接服务器上创建提供商字符串时添加“用户ID =用户名”。

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

你可以在这里阅读更多内容: https://blogs.technet.microsoft.com/mdegre/2011/03/10/access-to-the-remote-server-is-denied-because-no-login-mapping-exists/