OLE DB-Anbieter für Microsoft Indexdienst

Microsoft Windows 2000 und Windows Server 2003 enthalten Microsoft Internetinformationsdienste (IIS) und den Microsoft Indexdienst. Durch diese Dienste können Dateien auf der Grundlage ihrer Eigenschaften gefiltert und eine Volltextindizierung sowie Abrufen der Dateidaten durchgeführt werden.

Der Indexdienst umfasst auch den Microsoft OLE DB-Anbieter für Microsoft Indexdienst. Dieser Anbieter kann bei der Suche nach Volltext- oder Eigenschaftswerten in Nichtdatenbankdateien verwendet werden. Eine Verbindungsserverdefinition kann mithilfe von sp_addlinkedserver erstellt werden. Die Sicherheit kann mit SQL Server Management Studio festgelegt werden. Verteilte Abfragen können dann zum Abrufen von Indexinformationen auf den Anbieter verweisen.

So erstellen Sie einen Verbindungsserver für den Zugriff auf einen Indexdienst-Volltextindex

  1. Erstellen Sie den Volltextindex mithilfe von Indexdienst. Indexdienst installiert standardmäßig einen Katalog namens default. Weitere Informationen finden Sie in der Indexdienst-Dokumentation.

  2. Führen Sie sp_addlinkedserver aus, um den Verbindungsserver zu erstellen, und geben Sie dabei MSIDXS als provider_name sowie data_source als den Namen des Volltextindexes an.

    Um z. B. einen Verbindungsserver namens FTIndexWeb zu erstellen, der auf einen Volltextindex namens Web zugreift, führen Sie Folgendes aus:

    sp_addlinkedserver FTIndexWeb, 'Index Server', 'MSIDXS', 'Web'
    
  3. Die Sicherheitsautorisierung von Indexdienst-Clients basiert auf dem Windows-Konto des Prozesses, der den OLE DB-Anbieter für Microsoft Indexdienst in Anspruch nimmt. Für durch SQL Server authentifizierte Anmeldungen werden verteilte Abfragen im Kontext des SQL Server-Prozesses ausgeführt. Da SQL Server in der Regel über ein Konto mit einer hohen Autorisierungsstufe ausgeführt wird, können manche durch SQL Server authentifizierte Benutzer, die einen Indexdienst-Verbindungsserver für den Zugriff auf Informationen verwenden, auf Informationen zugreifen, für die sie eigentlich keine Zugriffsberechtigung besitzen. Mitglieder der festen Serverrolle sysadmin lösen dieses Problem durch eine strikte Kontrolle der SQL Server-Anmeldungen, die die Berechtigung besitzen, verteilte Abfragen mithilfe eines Indexdienst-Verbindungsservers durchzuführen.

    Im folgenden Beispiel entfernt der Administrator zunächst alle Anmeldungszuordnungen zum Indexdienst-Verbindungsserver mithilfe von sp_droplinkedsrvlogin:

    sp_droplinkedsrvlogin FTIndexWeb, NULL
    

    Der Administrator autorisiert dann mithilfe von sp_addlinkedsrvlogin einzelne Anmeldungen für den Zugriff auf den Verbindungsserver, wie z. B.:

    sp_addlinkedsrvlogin FTIndexWeb, true, 'SomeLogin'
    

    Sie können diese Aktionen ausführen, indem Sie in SQL Server Management Studio mit der rechten Maustaste auf den Verbindungsserver klicken. Klicken Sie dann auf Eigenschaften, und wählen Sie die Registerkarte Sicherheit aus.

Transact-SQL-Anweisungen können die OPENQUERY-Funktion zum Senden von Befehlen an Indexdienst mithilfe einer SQL-Syntax verwenden, die mit der in SQL Server unterstützten Volltextabfragesyntax für Volltextsuchen auf Daten, die in der Datenbank gespeichert sind, konsistent ist. Die vom Indexdienst unterstützte SQL-Volltextsyntax ist im Handbuch "Index Server Programmer's Guide" definiert, das im Microsoft Developer Network (MSDN) und in der Dokumentation zum Indexdienst enthalten ist.