Fournisseur OLE DB pour le service d'indexation Microsoft

Microsoft Windows 2000 et Windows Server 2003 comprennent Microsoft Internet Information Services (IIS) et le service d'indexation Microsoft. Ces services permettent de filtrer les fichiers en fonction de leurs propriétés et de réaliser des opérations d'indexation de texte intégral et de récupération des données contenues dans les fichiers.

Le service d'indexation inclut également le fournisseur OLE DB Microsoft pour le Service d'indexation Microsoft. Ce fournisseur peut être utilisé pour effectuer des recherches en texte intégral ou des recherches de valeurs de propriétés sur les fichiers qui ne sont pas des bases de données. Vous pouvez générer une définition de serveur lié en utilisant sp_addlinkedserver et configurer la sécurité à l'aide de SQL Server Management Studio. Les requêtes distribuées peuvent ensuite référencer le fournisseur afin de récupérer les informations indexées.

Pour créer un serveur lié d'accès à un index de texte intégral du service d'indexation

  1. Créez l'index de texte intégral souhaité en utilisant le service d'indexation. Par défaut, le service d'indexation installe un catalogue nommé default. Pour plus d'informations, consultez la documentation du service d'indexation.

  2. Exécutez sp_addlinkedserver pour créer le serveur lié en spécifiant MSIDXS comme provider_name et le nom de l'index de texte intégral comme data_source.

    Par exemple, pour créer un serveur lié nommé FTIndexWeb capable d'accéder à un index de texte intégral nommé Web, exécutez :

    sp_addlinkedserver FTIndexWeb, 'Index Server', 'MSIDXS', 'Web'
    
  3. Les autorisations liées à la sécurité affectées aux clients du Service d'indexation reposent sur le compte Windows du processus mobilisant le fournisseur OLE DB pour le service d'indexation Microsoft. Pour les connexions SQL Server authentifiées, les requêtes distribuées sont exécutées dans le contexte du processus SQL Server. Étant donné que SQL Server est généralement exécuté sous un compte disposant d'un niveau d'autorisation élevé, les utilisateurs authentifiés de SQL Server peuvent se servir d'un serveur lié au service d'indexation pour accéder aux informations qu'ils ne peuvent pas consulter. Les membres du rôle serveur fixe sysadmin pallient à ce problème en contrôlant de façon stricte les connexions SQL Server autorisées à exécuter des requêtes distribuées qui utilisent un serveur lié au Service d'indexation.

    L'administrateur commence par utiliser sp_droplinkedsrvlogin pour supprimer tous les mappages de connexion d'accès au serveur lié au Service d'indexation. Exemple :

    sp_droplinkedsrvlogin FTIndexWeb, NULL
    

    L'administrateur utilise ensuite sp_addlinkedsrvlogin pour autoriser les connexions individuelles à accéder au serveur lié. Exemple :

    sp_addlinkedsrvlogin FTIndexWeb, true, 'SomeLogin'
    

    Pour réaliser ces actions, cliquez avec le bouton droit sur le serveur lié dans SQL Server Management Studio, cliquez sur Propriétés, puis sélectionnez l'onglet Sécurité.

Les instructions Transact-SQL peuvent utiliser la fonction OPENQUERY pour envoyer des commandes au Service d'indexation en utilisant une syntaxe SQL compatible avec la syntaxe de requête de texte intégral prise en charge dans SQL Server pour effectuer des recherches en texte intégral portant sur des données stockées dans la base de données. La syntaxe de texte intégral SQL prise en charge par le service d'indexation est définie dans le Guide de programmation Index Server inclus soit dans la documentation MSDN (Microsoft Developer Network) soit dans la documentation du service d'indexation.