首页 新闻 会员 周边 捐助

查询链接服务器的问题

0
悬赏园豆:100 [已解决问题] 解决于 2009-12-07 08:45

公司有多台数据库服务器,需要链接距服务器查询,其中两台可以正常链接,链接后可正常查询

但有一台不行,查询报错
EXEC sp_addlinkedserver 'memberdb','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=192.168.0.2\SQLDATA;UID=sa;PWD=1;'

select top 10 * from memberdb.member.dbo.users
memberdb 为链接服务器名,也就是指向的其它服务器

执行上面的sql出现如下错误

链接服务器"memberdb"的 OLE DB 访问接口 "MSDASQL" 返回了消息 "[Microsoft][ODBC SQL Server Driver][SQL Server]用户 'sa' 登录失败。"。
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "memberdb" 的 OLE DB 访问接口 "MSDASQL" 报错。身份验证失败。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "memberdb" 的 OLE DB 访问接口 "MSDASQL" 的数据源对象。

,补充一句,如果重新打开 Microsoft SQL Server Management Studio
用windows验证方式登录,则可以正常查询!

补充2,用户 'sa' 登录失败。"。应该不是指的链接的其它服务器sa,而是指的本机的sa,因为我换个用户 abc,则提示 用户 'abc' 登录失败。"。

急等高手!

 

 



飞阿飞的主页 飞阿飞 | 菜鸟二级 | 园豆:444
提问于:2009-12-03 22:15
< >
分享
最佳答案
0

是不是有实例名的问题。我看了SQLOLEDB链接的例子,实例名是写在 datasrc 里面的,而不是 severname 里面。

Scenario is: Trying to create a linked server on Computer1 pointing to a
database named ADMIN on a named instance (DMSQL11\NAMED1) on Computer2.

I executed the following:
EXEC sp_addlinkedserver @server = 'TESTLINK', @srvproduct='',
@provider='SQLOLEDB', @datasrc = 'DMSQL1\NAMED1', @catalog = 'ADMIN'
EXEC sp_addlinkedsrvlogin @rmtsrvname = 'TESTLINK', @useself = 'false',
@rmtuser = '<USER>', @rmtpassword = '<PASSWORD>' (I put the appropriate
user and password in of course).

以上引用自:

http://database.ittoolbox.com/groups/technical-functional/sql-server-l/linked-servers-named-instances-different-machines-238173

你按上面这个方法试试看呢?如果你确定不是用户名和密码的问题的话。

收获园豆:50
eaglet | 专家六级 |园豆:17139 | 2009-12-04 12:38
其他回答(2)
0

你登录SQL服务器端的时候用的windows身份登录的吗?也就是windows身份验证码?换成sa用户登录试试

收获园豆:10
死神的背影 | 园豆:667 (小虾三级) | 2009-12-04 11:32
0

 换楼上方法试试吧!
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go

不行就重装系统吧!

收获园豆:40
| 园豆:245 (菜鸟二级) | 2009-12-06 19:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册