0

SQL 2008 で Advantage v7 データベース サーバーへのリンク サーバーを作成しようとしています。以下のコマンドを使用して、SQL 2008 でリンク サーバーを正常に作成しました。接続は問題なくテストされます。また、接続している Advantage DB にはデータ ディクショナリがありません。

リンクサーバーを作成するためのSQL

EXEC master.dbo.sp_addlinkedserver 
  @server = N'ADVANTAGE', @srvproduct=N'Advantage', 
  @provider=N'Advantage.OLEDB', 
  @datasrc=N'\\asc1\questtest$\spaulrun'
 /* For security reasons the linked server remote logins password is changed with ######## */

EXEC master.dbo.sp_addlinkedsrvlogin       
  @rmtsrvname=N'ADVANTAGE',
  @useself=N'False',
  @locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL

次のクエリを実行すると:

select * from
openquery(ADVANTAGE,'select * from members')

次のエラーが表示されます。

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "Advantage.OLEDB" for linked server "ADVANTAGE" reported an error. Access denied.
Msg 7350, Level 16, State 2, Line 1
Cannot get the column information from OLE DB provider "Advantage.OLEDB" for linked server "ADVANTAGE".

これが NT ファイルのアクセス許可の問題ではないことを確認しました。また、エラー メッセージが表示される直前に、画面にすべての列名が一瞬だけ表示されます。したがって、少なくともいくつかのテーブル情報を Advantage から取得しています。アクセス拒否メッセージが表示される理由がわかりません。

どんな助けでも大歓迎です!

4

1 に答える 1

6

これはおなじみのように聞こえますが、表示された正確なエラー メッセージは覚えていません。

Linked Server セットアップで Advantage OLE DB Provider に移動し、右クリックしてプロパティを選択し、「Allow Inprocess」を設定してみてください。

私の記憶が正しければ、Management Studio Express で Server Objects -> Linked Servers -> Providers -> Advantage OLE DB Provider (右クリック -> プロパティまたはダブルクリック) に移動しました。

「処理中を許可」を設定

于 2011-01-21T19:11:48.670 に答える