土台を築くだけです:
- 64 ビット Windows サーバーには、SQL Server 2008 R2 の 64 ビット インストールがあります。
- 同じマシンに 32 ビット バージョンの SQL Server Express をインストールしました
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 内からクエリを実行する限り、すべてが正常に機能します。ただし、そのリンク サーバーにアクセスしようとする可能性のあるサードパーティ ツールを起動すると、問題が発生し始めます。接続文字列を入力してクエリを実行できる小さなクエリ テスト ツールがあります。この接続文字列を使用して、最初にマスター データベースにアクセスします。
Provider=SQLOLEDB; Data Source=localhost\SQLEXPRESS32BIT; Libraries=Master; User ID=sa; Password=xxxxxx
その接続は機能し、サーバーに ping を実行してマスター データベースにクエリを実行できます。しかし、同じ Timberline クエリ (select * from timberlinetest....) を試すと、次のエラーが発生します。
リンク サーバー "timberline test" の OLE DB プロバイダー "MSDASQL" のデータ ソース オブジェクトを初期化できません。リンク サーバー "timberline test" の OLE DB プロバイダー "MSDASQL" から、"[Sage Timberline Office][Sage Timberline Office ODBCDriver][DRM File Library] 無効なアカウント名" というメッセージが返されました。
注意すべき点がいくつかあります...テスト目的で:
- ディレクトリ
c:\Training\Extended
で、セキュリティ全体を開き、Everyone
完全な読み取り/書き込み権限に設定します - Timberline 自体で、セキュリティを無効にしました ([ツール] > [セキュリティ管理者] > [セキュリティ設定] > [アプリケーション セキュリティを有効にする] のチェックを外しました)。
ここで他に何をすべきかわかりません。どんなアドバイスも素晴らしいでしょう。