OLE DB Provider for Microsoft Indexing Service

MicrosoftWindows 2000 和 Windows Server 2003 包含 Microsoft Internet Information Services (IIS) 及 Microsoft Indexing Service。這些服務可根據其屬性啟用篩選檔案以及執行全文檢索索引和檔案資料的擷取。

「索引服務」也包含 Microsoft OLE DB Provider for Microsoft Indexing Service。此提供者可在非資料庫檔案上執行全文檢索或屬性數值搜尋。您可以使用 sp_addlinkedserver 來建立連結伺服器定義,也可使用 SQL Server Management Studio 來設定安全性。分散式查詢就可參考提供者來擷取索引資訊。

若要建立連結伺服器來存取索引服務全文檢索索引

  1. 使用「索引服務」來建立全文檢索索引。依預設值,「索引服務」將安裝一個名為 default 的資料庫目錄。如需詳細資訊,請參閱 Indexing Service 文件。

  2. 執行 sp_addlinkedserver 來建立連結伺服器,指定 MSIDXS 作為 provider_name,並指定全文檢索索引的名稱作為 data_source。

    例如,若要建立名為 FTIndexWeb 的連結伺服器來存取名為 Web 的全文檢索索引,請執行:

    sp_addlinkedserver FTIndexWeb, 'Index Server', 'MSIDXS', 'Web'
    
  3. 「索引服務」用戶端的安全性驗證是以消耗 OLE DB Provider for Microsoft Index Service 的處理序之 Windows 帳戶為基礎。對於 SQL Server 驗證登入,分散式查詢是在 SQL Server 處理序內容中執行。因為 SQL Server 通常執行於具有高授權層級的帳戶之下,使用「索引服務」連結伺服器的 SQL Server 驗證使用者可以存取未經授權存取的資訊。sysadmin 固定伺服器角色的成員解決此問題的作法是嚴格地控制已授權可使用「索引服務」連結伺服器來執行分散式查詢的 SQL Server 登入。

    系統管理員首先會使用 sp_droplinkedsrvlogin 來移除對應至「索引服務」連結伺服器的所有登入,例如:

    sp_droplinkedsrvlogin FTIndexWeb, NULL
    

    接著管理員會使用 sp_addlinkedsrvlogin 來授權個別登入以存取連結伺服器,例如:

    sp_addlinkedsrvlogin FTIndexWeb, true, 'SomeLogin'
    

    若要執行這些動作,請以滑鼠右鍵按一下 SQL Server Management Studio 中的連結伺服器,然後按 [屬性],接著選取 [安全性] 索引標籤。

Transact-SQL 陳述式可使用 OPENQUERY 函數,透過和 SQL Server 支援的全文檢索查詢語法一致的 SQL 語法將命令傳送給「索引服務」,以便對資料庫所儲存的資料進行全文檢索搜尋。「索引服務」所支援的 SQL 全文檢索語法定義於《Index Server Programmer's Guide》,您可在 Microsoft Developer Network 或「索引服務」文件中找到此手冊。