Поставщик OLE DB для службы индексирования (Майкрософт)
Microsoft Windows 2000 и Windows Server 2003 включают службы IIS (Майкрософт) и службу индексирования (Майкрософт). Эти службы позволяют фильтровать файлы на основе их свойств, а также выполнять полнотекстовое индексирование и извлечение данных из файлов.
Кроме того, в состав службы индексирования входит поставщик Microsoft OLE DB для службы индексирования (Майкрософт). Он позволяет выполнять полнотекстовый поиск или поиск значений свойств в файлах, не относящихся к базам данных. Определение связанного сервера можно создать при помощи хранимой процедуры sp_addlinkedserver, а настроить систему обеспечения безопасности — с использованием хранимой процедуры среды Среда SQL Server Management Studio. После этого в распределенных запросах можно обращаться к поставщику для получения индексированных данных.
Создание связанного сервера для доступа к полнотекстовому индексу службы индексирования
Создайте полнотекстовый индекс, используя службу индексирования. По умолчанию служба индексирования создает при этом каталог с именем default. Дополнительные сведения см. в документации по службе индексирования.
Выполните для создания связанного сервера хранимую процедуру sp_addlinkedserver, указав в качестве имени_поставщика MSIDXS, а в качестве источника_данных имя полнотекстового индекса.
Например, чтобы создать связанный сервер с именем FTIndexWeb, использующий полнотекстовый индекс Web, выполните следующий код:
sp_addlinkedserver FTIndexWeb, 'Index Server', 'MSIDXS', 'Web'
Авторизация клиентов службы индексирования основана на анализе учетной записи 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 или в документации по службе индексирования.