繁体   English   中英

链接服务器“未找到数据源名称且未指定默认驱动程序”错误

[英]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

  • 发送给提供商的登录名和密码无效。

    通过sp_addlinkedsrvlogin验证是否为链接服务器和当前 SQL Server 登录配置了有效的登录名和密码。

通过这篇文章

更新

在链接服务器连接期间(例如,当它处理分布式查询时),发送服务器提供登录名和密码以代表其连接到接收服务器。 要使此连接正常工作,您必须使用 SQL Server 系统存储过程在链接服务器之间创建登录映射。 -- 这里这里

您需要为链接服务器创建登录映射,请参阅链接服务器的安全性

使用sp_addlinkedsrvlogin

创建或更新 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM