< クライアントスクリプトで複数ページで同じ初期化処理を行う | Oracle クライアントとネットワーク コンポーネントが見つかりません。 >

December 6, 2003

OLE DB プロバイダ 'MSDAORA.1' のインターフェイスを作成できませんでした

実機セットアップのため、Windows 2000 Serverに、新たにMSDEとOracle Clientをインストールして、MSDEにデータベースを作成し、Oracleのリンクサーバを作成しました。

そして、MSDEから使用するためOracleの表をビューとして作成しようとするとこんなエラーが。

1>SELECT * FROM DB_SVR..USER_FOO.TABLE_BAR
2>GO
メッセージ 7302、レベル 16、状態 1、サーバー TESTSRV、行 1
OLE DB プロバイダ 'MSDAORA.1' のインターフェイスを作成できませんでした。
1>

インターフェースと言う言葉から想像するに、COM回りのエラーであろうと想像は付くのですが(OLE DBってCOMですから)MDACの再インストールを行っても、MSDEの再インストールを行っても解決しませんでした。

一応、
280106 - [HOWTO] SQL Server で Oracle へのリンク サーバーのセットアップおよびトラブルシューティングを行う方法[support.microsoft.com]
に情報がありますが、REGSVR32で確認する前にMDACの再インストールをしたので、あまり有用な情報とは思えませんでした。

だいぶん長いこと試したのですが、結局は、

  1. コントロールパネル→管理ツール→コンポーネント サービス を開く
  2. ツリーの コンポーネント サービス>コンピュータ>マイ コンピュータ を右クリックして、プロパティを表示する
  3. 規定のセキュリティ タブの、規定のアクセス許可 で、規定値の編集 を押下しレジストリ値のアクセス許可 ウインドウを表示する
    ちなみにWindows Xpでは、ここではディレクトリセキュリティを編集するみたいな画面が出てきた記憶があるが、2000系はちょっと違うらしい。
  4. 追加 を押下し、ユーザーとグループの追加 ダイアログでEveryoneを選択して追加を押下し、OKする

で、ビューが作成できるようになりました。Everyoneでなく、MSDEサービスがどのユーザの権限で実行されるのか調べて設定し直さなくてはいけないのですが、それはまたあとで。とりあえず原因は権限不足、だったみたいです。

2003.12.08 追記
SYSTEMアカウントに対し、権限を追加すればOKです。

トラックバック

このエントリーにトラックバック:
http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/131

コメント

コメントする

※ コメントスパム対策のため、コメント本文はおはよう、こんにちわ、こんばんわのいずれかより始めるようにしてください。

name:
email:

※ 必要ですが、表示しません。

url:
情報を保存する ?