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

时间:2013-12-09 12:05:27

标签: sql sql-server linked-server

我使用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 AU身份验证时,它不起作用。
使用SQL身份验证需要进行哪些更改?
在我已启用的提供程序中:“嵌套查询”,“允许inpocess”,仅限零级“。
错误是:

  

链接服务器“TEST”的OLE DB提供程序“MSDASQL”返回消息   “[Microsoft] [ODBC驱动程序管理器]无效的连接字符串   属性“。OLE DB提供程序”MSDASQL“用于链接服务器”TEST“   返回消息“[Microsoft] [ODBC驱动程序管理器]数据源名称   找不到,也没有指定默认驱动程序“。消息7303,级别16,状态   1,第1行无法初始化OLE DB提供程序的数据源对象   链接服务器“TEST”的“MSDASQL”。

2 个答案:

答案 0 :(得分:0)

由于其中一个问题,可能会出现此错误消息。

  • sp_addlinkedserverdata_source, location, provider_string, or catalog)中指定的其中一个初始化参数对此提供商不正确。

    验证为执行
    指定的链接服务器定义的这些参数  sp_addlinkedserver,对于给定的提供者是正确的。

    同时检查Here sp_addlinkedsrvlogin

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

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

完成此Article

<强>更新

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

您需要为链接服务器see security for Linked Server

创建登录映射

使用sp_addlinkedsrvlogin

创建或更新SQL Server本地实例上的登录名与远程服务器上的安全帐户之间的映射。

sp_addlinkedsrvlogin [ @rmtsrvname= ] 'rmtsrvname' 
     [ , [ @useself= ] 'TRUE' | 'FALSE' | 'NULL'] 
     [ , [ @locallogin= ] 'locallogin' ] 
     [ , [ @rmtuser= ] 'rmtuser' ] 
     [ , [ @rmtpassword= ] 'rmtpassword' ] 

答案 1 :(得分:0)

如果使用Windows身份验证与链接服务器的连接正常,但它没有使用SQL Server身份验证,我会查看链接服务器的属性并确保选择“安全”选项卡,两种身份验证模式都已启用:

enter image description here