环境&详细信息
- 环境 - SQL Server2014。
- 所有DB都参加可用性组。
- 要连接以仅读取服务器的节点,我们在两个节点上创建了链接服务器。
- 在内部,我们提供了服务器DNS名称和" ApplicationIntent = ReadOnly",作为链接连接字符串的一部分。链接的服务器始终读取辅助/读取节点的数据。
- 链接服务器正在使用[ReadOnly] SQL用户。该用户在选定的数据库上具有数据读取器的权限。
- 上面的链接服务器 - 工作正常。我们正在使用SQL作业中的链接服务器,该服务器在" SA"上下文下运行。
问题
- 我正在开发ADF管道。同样,在SQL Server上创建了SQL用户 - " AdFuser"。该用户具有数据读取器,所需数据库的数据作者权限。
-
现在,我正在尝试在" adfuser"上下文下关注查询。
从[readonly].db.dbo.tablea。
中选择Col1,Col2
它正在扔错误 - 数据库操作在服务器"服务器名称"上使用SQL错误编号'7416'失败。来自数据库执行的错误消息:由于不存在登录映射而拒绝对远程服务器的访问。
有什么解决方案?
您需要在创建链接服务器上的提供商字符串中添加"用户ID =用户名"。
EXEC master.dbo.sp_addlinkedserver @server = N’LinkServerName’, @provider=N’SQLNCLI’,@srvproduct = ‘MS SQL Server’, @provstr=N’SERVER=serverNameInstanceName;User ID=myUser‘
您可以在这里阅读更多:https://blogs.technet.microsoft.com/mdegre/2011/03/03/10/access-to-te-the-the-remote-server-is-is-is-denied-because-no-login-mapping-exists/pexists/pexists/p.Div>