我使用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”。
答案 0 :(得分:0)
由于其中一个问题,可能会出现此错误消息。
sp_addlinkedserver
(data_source, location, provider_string, or catalog
)中指定的其中一个初始化参数对此提供商不正确。
验证为执行
指定的链接服务器定义的这些参数
sp_addlinkedserver
,对于给定的提供者是正确的。
发送给提供商的登录名和密码无效。
验证是否为链接服务器配置了有效的登录名和密码,并通过sp_addlinkedsrvlogin
登录当前的SQL Server。
完成此Article
<强>更新强>
在链接服务器连接期间(例如,当它处理分布式查询时),发送服务器提供登录名和密码以代表它连接到接收服务器。要使此连接起作用,必须使用SQL Server系统存储过程在链接的服务器之间创建登录映射。 - HERE和HERE
您需要为链接服务器see security for Linked Server
创建登录映射创建或更新SQL Server本地实例上的登录名与远程服务器上的安全帐户之间的映射。
sp_addlinkedsrvlogin [ @rmtsrvname= ] 'rmtsrvname'
[ , [ @useself= ] 'TRUE' | 'FALSE' | 'NULL']
[ , [ @locallogin= ] 'locallogin' ]
[ , [ @rmtuser= ] 'rmtuser' ]
[ , [ @rmtpassword= ] 'rmtpassword' ]
答案 1 :(得分:0)
如果使用Windows身份验证与链接服务器的连接正常,但它没有使用SQL Server身份验证,我会查看链接服务器的属性并确保选择“安全”选项卡,两种身份验证模式都已启用: