Поставщик OLE DB для службы индексирования (Майкрософт)

Microsoft Windows 2000 и Windows Server 2003 включают службы IIS (Майкрософт) и службу индексирования (Майкрософт). Эти службы позволяют фильтровать файлы на основе их свойств, а также выполнять полнотекстовое индексирование и извлечение данных из файлов.

Кроме того, в состав службы индексирования входит поставщик Microsoft OLE DB для службы индексирования (Майкрософт). Он позволяет выполнять полнотекстовый поиск или поиск значений свойств в файлах, не относящихся к базам данных. Определение связанного сервера можно создать при помощи хранимой процедуры sp_addlinkedserver, а настроить систему обеспечения безопасности — с использованием хранимой процедуры среды Среда SQL Server Management Studio. После этого в распределенных запросах можно обращаться к поставщику для получения индексированных данных.

Создание связанного сервера для доступа к полнотекстовому индексу службы индексирования

  1. Создайте полнотекстовый индекс, используя службу индексирования. По умолчанию служба индексирования создает при этом каталог с именем default. Дополнительные сведения см. в документации по службе индексирования.

  2. Выполните для создания связанного сервера хранимую процедуру sp_addlinkedserver, указав в качестве имени_поставщика MSIDXS, а в качестве источника_данных имя полнотекстового индекса.

    Например, чтобы создать связанный сервер с именем FTIndexWeb, использующий полнотекстовый индекс Web, выполните следующий код:

    sp_addlinkedserver FTIndexWeb, 'Index Server', 'MSIDXS', 'Web'
    
  3. Авторизация клиентов службы индексирования основана на анализе учетной записи Windows процесса, пользующегося услугами поставщика OLE DB для службы индексирования (Майкрософт). В случае прошедших авторизацию имен входа 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, согласованного с реализованным в SQL Server синтаксисом полнотекстового поиска данных в базе данных. Синтаксис полнотекстовых запросов SQL, поддерживаемый службой индексирования, определен в руководстве по программированию сервера индексирования, которое можно найти в библиотеке Microsoft Developer Network или в документации по службе индексирования.