只是为了奠定基础:
使用32位Express版本,我们成功创建了一个到Timberline数据存储的链接服务器,如下所示:
EXEC sp_addlinkedserver
@server = 'TimberlineTest',
@provider = 'MSDASQL',
@srvproduct='Timberline Data',
@datasrc = 'TimberlineDSN'
然后返回所有表:
exec sp_tables_ex 'TimberlineTest'
我们还创建了一个用户,如下所示:
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'TimberlineTest',
@useself = 'False',
@rmtuser = 'sa',
@rmtpassword = 'xxxxxx'
GO
此外,在SSMS查询窗口中,这对主数据库运行时效果很好:
select * from timberlinetest.[c:\Training\Extended]..Master_PRM_Employee
只要我们从SSMS内执行查询,一切正常。但是,当我们启动可能尝试访问该链接服务器的任何类型的第三方工具时,我们开始遇到麻烦。我们有一个小的查询测试工具,允许您输入连接字符串并运行查询。我们使用此连接字符串首先进入Master db:
Provider=SQLOLEDB; Data Source=localhost\SQLEXPRESS32BIT; Libraries=Master; User ID=sa; Password=xxxxxx
该连接有效,我们可以ping服务器并查询主数据库。但是当我们尝试相同的Timberline查询(从timberlinetest中选择*)时,我们遇到了这个错误:
无法为链接服务器“timberline test”初始化OLE DB提供程序“MSDASQL”的数据源对象。用于链接服务器“timberline test”的OLE DB提供程序“MSDASQL”返回消息“[Sage Timberline Office] [Sage Timberline Office ODBCDriver] [DRM文件库]无效的帐户名称。”
有几点需要注意......出于测试目的:
c:\Training\Extended
上,我们已打开安全范围,将Everyone
设置为完全读写权限我不确定这里还有什么可做的。任何建议都会很棒。
答案 0 :(得分:0)
(在问题编辑中回答。转换为社区维基回答。请参阅Question with no answers, but issue solved in the comments (or extended in chat))
OP写道:问题解决了。
我将连接字符串更改为:
Provider=SQLOLEDB; Data Source=.\sqlexpress32bit; Libraries=master; Trusted_Connection=Yes
这很有效!!