我正在尝试从远程 SQL Server 中提取数据。我可以使用 SQL 身份验证访问远程服务器;我没有任何运气使用与 sp_addlinkedserver 相同的凭据。
我正在尝试这样的事情:
Exec sp_dropserver 'Remote', 'droplogins'
go
EXEC sp_addlinkedserver
@server='Remote',
@srvproduct='',
@provider='SQLNCLI',
@datasrc='0.0.0.0'
EXEC sp_addlinkedsrvlogin
@useself='FALSE',
@rmtsrvname='Remote',
@rmtuser='User',
@rmtpassword='Secret'
Select Top 10 * from Remote.DatabaseName.dbo.TableName
这是我得到的:
链接服务器“远程”的 OLE DB 提供程序“SQLNCLI”返回消息 “登录超时已过期”。 链接服务器“远程”的 OLE DB 提供程序“SQLNCLI”返回消息 “建立与服务器的连接时发生错误。 连接到 SQL Server 2005 时,此故障可能是由 事实上,在默认设置下 SQL Server 不允许远程 连接。”。 消息 53,第 16 级,状态 1,第 0 行 命名管道提供程序:无法打开与 SQL Server [53] 的连接。
同样,我可以使用这些确切的凭据直接访问服务器(在 SQL Management Studio 中),因此这不是我的网络或凭据的问题。
我在网上看到的大多数示例似乎都涉及 Windows 域帐户,而不是 SQL 安全登录。这不适用于 SQL 身份验证吗?