[英]Linked server “Data source name not found and no default driver specified” error
我使用 Microsoft OLE DB Provider for ODBC Drivers 创建了一个链接服务器:
EXEC master.dbo.sp_addlinkedserver @server = N'TEST',
@srvproduct=N'Microsoft Visual FoxPro Driver',
@provider=N'MSDASQL',
@datasrc=N'TEST'
它仍然工作正常,我仍然使用 WINdows 身份验证模式,但是当我创建登录用户并切换到 SQL 身份验证时,它不起作用。
使用 SQL 身份验证需要进行哪些更改?
在我启用的提供者中:“嵌套查询”、“允许处理”、仅级别零“。
错误是:
链接服务器“TEST”的 OLE DB 提供程序“MSDASQL”返回消息“[Microsoft][ODBC 驱动程序管理器] 连接字符串属性无效”。 链接服务器“TEST”的 OLE DB 提供程序“MSDASQL”返回消息“[Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序”。 消息 7303,级别 16,状态 1,第 1 行无法初始化链接服务器“TEST”的 OLE DB 访问接口“MSDASQL”的数据源对象。
由于这些问题之一,可能会出现此错误消息。
sp_addlinkedserver
指定的初始化参数之一( data_source, location, provider_string, or catalog
)对于此提供程序不正确。
验证为链接服务器定义的这些参数,通过执行
sp_addlinkedserver
,对于给定的提供程序是正确的。
发送给提供商的登录名和密码无效。
通过sp_addlinkedsrvlogin
验证是否为链接服务器和当前 SQL Server 登录配置了有效的登录名和密码。
通过这篇文章
更新
在链接服务器连接期间(例如,当它处理分布式查询时),发送服务器提供登录名和密码以代表其连接到接收服务器。 要使此连接正常工作,您必须使用 SQL Server 系统存储过程在链接服务器之间创建登录映射。 -- 这里和这里
创建或更新 SQL Server 本地实例上的登录名与远程服务器上的安全帐户之间的映射。
sp_addlinkedsrvlogin [ @rmtsrvname= ] 'rmtsrvname'
[ , [ @useself= ] 'TRUE' | 'FALSE' | 'NULL']
[ , [ @locallogin= ] 'locallogin' ]
[ , [ @rmtuser= ] 'rmtuser' ]
[ , [ @rmtpassword= ] 'rmtpassword' ]
如果使用 Windows 身份验证与链接服务器的连接工作正常,但不使用 SQL Server 身份验证,我将查看链接服务器的属性并确保选择“安全”选项卡,身份验证模式已启用:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.