Provider OLE DB per il Servizio di indicizzazione Microsoft

Microsoft Windows 2000 e Windows Server 2003 includono Microsoft Internet Information Services (IIS) e il Servizio di indicizzazione Microsoft. Tali servizi consentono il filtraggio dei file in base alle proprietà corrispondenti, nonché l'indicizzazione full-text e il recupero dei dati su file.

Il Servizio di indicizzazione include inoltre il provider Microsoft OLE DB per il Servizio di indicizzazione Microsoft. che è possibile utilizzare per l'esecuzione di ricerche full-text o in base al valore delle proprietà in file non di database. È possibile definire un server collegato utilizzando sp_addlinkedserver, nonché impostare la protezione tramite SQL Server Management Studio. Nelle query distribuite è quindi possibile fare riferimento al provider per recuperare le informazioni indicizzate.

Per creare un server collegato per l'accesso all'indice full-text del Servizio di indicizzazione

  1. Creare l'indice full-text utilizzando il Servizio di indicizzazione. Per impostazione predefinita il Servizio di indicizzazione installa un catalogo denominato default. Per ulteriori informazioni, vedere la documentazione del Servizio di indicizzazione.

  2. Eseguire sp_addlinkedserver per creare il server collegato, specificando MSIDXS per provider_name e il nome dell'indice full-text per data_source.

    Ad esempio, per creare il server collegato FTIndexWeb che accede all'indice full-text Web, eseguire:

    sp_addlinkedserver FTIndexWeb, 'Index Server', 'MSIDXS', 'Web'
    
  3. L'autorizzazione di protezione dei client del Servizio di indicizzazione è basata sull'account di Windows del processo che utilizza il provider OLE DB per Servizio di indicizzazione Microsoft. Per gli account di accesso con autenticazione SQL Server, le query distribuite vengono eseguite nel contesto del processo di SQL Server. Poiché SQL Server viene normalmente eseguito con un account con un livello di autorizzazioni elevato, gli account con autenticazione SQL Server che utilizzano un server collegato del Servizio di indicizzazione possono ottenere accesso a informazioni per le quali non sono autorizzati. I membri del ruolo predefinito del server sysadmin risolvono questo problema tramite un controllo rigoroso degli account di accesso di SQL Server autorizzati a eseguire query distribuite tramite un server collegato del Servizio di indicizzazione.

    L'amministratore utilizza innanzitutto sp_droplinkedsrvlogin per rimuovere tutti i mapping degli account di accesso al server collegato del Servizio di indicizzazione, ad esempio:

    sp_droplinkedsrvlogin FTIndexWeb, NULL
    

    L'amministratore utilizza quindi sp_addlinkedsrvlogin per concedere l'accesso al server collegato ai singoli account di accesso:

    sp_addlinkedsrvlogin FTIndexWeb, true, 'SomeLogin'
    

    Per eseguire queste operazioni, fare clic con il pulsante destro del mouse sul server collegato in SQL Server Management Studio, scegliere Proprietà e quindi selezionare la scheda Protezione.

Nelle istruzioni Transact-SQL è possibile specificare la funzione OPENQUERY per l'invio di comandi al Servizio di indicizzazione utilizzando una sintassi SQL consistente con la sintassi delle query full-text supportata in SQL Server per la ricerca full-text di dati archiviati nel database. La sintassi SQL full-text supportata dal Servizio di indicizzazione è definita nel manuale del programmatore di Index Server disponibile in Microsoft Development Network o nella documentazione del Servizio di indicizzazione.