来自数据库执行的错误消息:拒绝访问远程服务器,因为不存在登录映射
Error message from database execution: Access to the remote server is denied because no login-mapping exists
环境与细节
- 环境 – SQL 服务器 2014.
- 所有数据库都参与了
可用性组。
- 要连接到服务器的只读节点,我们
在两个节点上创建链接服务器。
- 在内部,我们提供了服务器 DNS 名称和“ApplicationIntent=ReadOnly”作为链接连接字符串的一部分。链接服务器总是从 secondary/read 节点读取数据。
- 链接服务器正在使用 [ReadOnly] SQL 用户。此用户对所选数据库具有数据 reader 权限。
- 以上链接服务器 - 工作正常。我们在 SQL 作业中使用链接服务器,它在“sa”上下文下运行。
问题
- 我正在开发 ADF 管道。同样,在 SQL 服务器上创建了 SQL 用户 – “adfuser”。此用户拥有所需数据库的数据 reader、数据写入权限。
现在,我正在尝试在“adfuser”上下文下进行查询。
SELECT Col1, Col2 来自 [ReadOnly].DB.dbo.TableA.
报错-
服务器 'Server name' 上的数据库操作失败,SQL 错误号为“7416”。来自数据库执行的错误消息:拒绝访问远程服务器,因为不存在登录映射。
有什么解决办法吗?
创建链接服务器时,您需要在提供程序字符串中添加“用户 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/
环境与细节
- 环境 – SQL 服务器 2014.
- 所有数据库都参与了 可用性组。
- 要连接到服务器的只读节点,我们 在两个节点上创建链接服务器。
- 在内部,我们提供了服务器 DNS 名称和“ApplicationIntent=ReadOnly”作为链接连接字符串的一部分。链接服务器总是从 secondary/read 节点读取数据。
- 链接服务器正在使用 [ReadOnly] SQL 用户。此用户对所选数据库具有数据 reader 权限。
- 以上链接服务器 - 工作正常。我们在 SQL 作业中使用链接服务器,它在“sa”上下文下运行。
问题
- 我正在开发 ADF 管道。同样,在 SQL 服务器上创建了 SQL 用户 – “adfuser”。此用户拥有所需数据库的数据 reader、数据写入权限。
现在,我正在尝试在“adfuser”上下文下进行查询。
SELECT Col1, Col2 来自 [ReadOnly].DB.dbo.TableA.
报错- 服务器 'Server name' 上的数据库操作失败,SQL 错误号为“7416”。来自数据库执行的错误消息:拒绝访问远程服务器,因为不存在登录映射。
有什么解决办法吗?
创建链接服务器时,您需要在提供程序字符串中添加“用户 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/