OLE DB Provider for Microsoft Indexing Service
Microsoft Windows 2000 と Windows Server 2003 には Microsoft インターネット インフォメーション サービス (IIS) と Microsoft Indexing Service が含まれています。これらのサービスを使用すると、ファイルのプロパティに基づいたファイルのフィルタ選択、フルテキスト インデックスの実行やファイル データの取得が可能になります。
Indexing Service には Microsoft OLE DB Provider for Microsoft Indexing Service も含まれています。このプロバイダは、データベースではないファイルのフルテキストまたはプロパティ値検索の際に使用できます。リンク サーバーは sp_addlinkedserver を使用して定義できます。また、セキュリティは SQL Server Management Studio を使用して設定できます。これにより、分散クエリはプロバイダを参照してインデックス情報を取得できるようになります。
Indexing Service フルテキスト インデックスにアクセスするためにリンク サーバーを作成するには
Indexing Service を使用してフルテキスト インデックスを作成します。既定では、Indexing Service は default というカタログをインストールします。詳細については Indexing Service のマニュアルを参照してください。
MSIDXS を provider_name に、フルテキスト インデックス名を data_source に指定して sp_addlinkedserver を実行し、リンク サーバーを作成します。
たとえば、Web というフルテキスト インデックスにアクセスする FTIndexWeb という名前のリンク サーバーを作成するには次のコマンドを実行します。
sp_addlinkedserver FTIndexWeb, 'Index Server', 'MSIDXS', 'Web'
Indexing Service クライアントのセキュリティ承認は、OLE DB Provider for Microsoft Index Service を使用しているプロセスの Windows アカウントに基づいて行われます。SQL Server 認証済みログインの場合は、分散クエリは SQL Server プロセスのコンテキストで実行されます。SQL Server は一般的に高い承認レベルを持つアカウントで実行されているので、SQL Server の認証済みユーザーは、通常アクセスが許可されていない情報に Indexing Service リンク サーバーを使用してアクセスできます。固定サーバー ロール sysadmin のメンバの場合、Indexing Service リンク サーバーを使用して分散クエリを実行できるよう認証された SQL Server のログインを厳密に制御することによって、この問題に対処しています。
管理者は、最初に sp_droplinkedsrvlogin を使用して Indexing Service リンク サーバーからすべてのログイン マッピングを削除します。
sp_droplinkedsrvlogin FTIndexWeb, NULL
次に、管理者は sp_addlinkedsrvlogin を使用してリンク サーバーにアクセスするための個別のログインを認証します。
sp_addlinkedsrvlogin FTIndexWeb, true, 'SomeLogin'
これらの動作を実行するには、SQL Server Management Studio でリンク サーバーを右クリックし、[プロパティ] をクリックします。次に [セキュリティ] タブをクリックします。
Transact-SQL ステートメントでは、データベース内に格納されたデータのフルテキスト検索用に SQL Server でサポートされているフルテキスト クエリ構文と一貫性のある SQL 構文を使用する Indexing Service に、OPENQUERY 関数を使用してコマンドを送信することができます。Indexing Service でサポートされる SQL フルテキスト構文は Microsoft Developer Network または Indexing Service のマニュアルにある『Index Server Programmer's Guide』を参照してください。