Einrichten einer Indizierungsverbindung zum Azure SQL Managed Instance mithilfe einer verwalteten Identität

Note

Azure KI-Suche ist über das Azure Portal, REST-APIs und Azure SDKs verfügbar. Es unterstützt auch Foundry IQ, die verwaltete Wissensschicht, die Unternehmensinhalte in wiederverwendbare, berechtigungsfähige Wissensbasen für Agenten im Microsoft Foundry-Portal transformiert.

In diesem Artikel wird beschrieben, wie Sie eine Azure KI-Suche Indexerverbindung mit SQL Managed Instance mithilfe einer verwalteten Identität einrichten, anstatt Anmeldeinformationen im Verbindungszeichenfolge bereitzustellen.

Sie können eine vom System zugewiesene verwaltete Identität oder eine vom Benutzer zugewiesene verwaltete Identität verwenden. Verwaltete Identitäten sind Microsoft Entra Anmeldungen und erfordern Azure Rollenzuweisungen für den Zugriff auf Daten in SQL Managed Instance.

Bevor Sie mehr über dieses Feature erfahren, sollten Sie verstehen, was ein Indexer ist und wie Sie einen Indexer für Ihre Datenquelle einrichten. Weitere Informationen finden Sie unter Indexers in Azure KI-Suche und Index-Daten aus Azure SQL-Datenbank.

Voraussetzungen

Zuweisen von Berechtigungen zum Lesen der Datenbank

Führen Sie die folgenden Schritte aus, um dem Suchdienst oder der benutzerseitig zugewiesenen verwalteten Identität die Berechtigung zum Lesen der SQL-Datenbank zuzuweisen.

  1. Stellen Sie mithilfe einer der folgenden Methoden eine Verbindung mit Ihrem SQL Managed Instance über SQL Server Management Studio (SSMS) her:

  2. Authentifizieren Sie sich mithilfe Ihres Microsoft Entra Kontos.

    Screenshot des Dialogfelds

  3. Suchen Sie im linken Bereich die SQL-Datenbank, die Sie als Datenquelle für die Indizierung verwenden, und klicken Sie mit der rechten Maustaste darauf. Wählen Sie "Neue Abfrage" aus.

    Screenshot der neuen SQL-Abfrage

  4. Kopieren Sie im T-SQL-Fenster die folgenden Befehle, und schließen Sie die Klammern um den Namen des Suchdiensts ein. Wählen Sie "Ausführen" aus.

    CREATE USER [insert your search service name here or user-assigned managed identity name] FROM EXTERNAL PROVIDER;
    EXEC sp_addrolemember 'db_datareader', [insert your search service name here or user-assigned managed identity name];
    

    Abbildung eines Screenshots zum Ausführen einer SQL-Abfrage.

Wenn Sie später die Identität des Suchdienstsystems nach dem Zuweisen von Berechtigungen ändern, müssen Sie die Rollenmitgliedschaft entfernen und den Benutzer in der SQL-Datenbank entfernen und dann die Berechtigungszuweisung wiederholen. Führen Sie die folgenden Befehle aus, um die Rollenmitgliedschaft und den Benutzer zu entfernen:

sp_droprolemember 'db_datareader', [insert your search service name or user-assigned managed identity name];

DROP USER IF EXISTS [insert your search service name or user-assigned managed identity name];

Hinzufügen einer Rollenzuweisung

In diesem Schritt erteilen Sie Ihrem Azure KI-Suche Dienst die Berechtigung zum Lesen von Daten aus Ihrem SQL Managed Instance.

  1. Wechseln Sie im Azure-Portal zu Ihrer SQL Managed Instance Seite.

  2. Wählen Sie access control (IAM) aus.

  3. Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen aus.

     Bildschirmfoto der seite Access Control.

  4. Wählen Sie die Leserrolle aus.

  5. Lassen Sie Zugriff zuweisen an bei Microsoft Entra-Benutzer, -Gruppe oder -Dienstprinzipal.

  6. Wenn Sie eine vom System zugewiesene verwaltete Identität verwenden, suchen Sie nach Ihrem Suchdienst, und wählen Sie sie aus. Wenn Sie eine vom Benutzer zugewiesene verwaltete Identität verwenden, suchen Sie nach dem Namen der vom Benutzer zugewiesenen verwalteten Identität, und wählen Sie sie aus. Wählen Sie "Speichern" aus.

    Hier ist ein Beispiel für eine SQL Managed Instance mit einer vom System zugewiesenen verwalteten Identität:

    Angezeigt wird ein Screenshot der Zuweisung der Mitgliedsrolle.

Erstellen der Datenquelle

Erstellen Sie die Datenquelle, und stellen Sie eine vom System zugewiesene verwaltete Identität bereit.

Vom System zugewiesene verwaltete Identität

Die REST-API, Azure Portal und das .NET SDK unterstützen vom System zugewiesene verwaltete Identität.

Wenn Sie eine Verbindung mithilfe einer vom System zugewiesenen verwalteten Identität herstellen, ist die einzige Änderung an der Datenquellendefinition das Format der Eigenschaft "credentials". Sie geben einen anfänglichen Katalog- oder Datenbanknamen und eine ResourceId an, die keinen Kontoschlüssel oder kein Passwort besitzt. Die ResourceId muss die Abonnement-ID SQL Managed Instance, die Ressourcengruppe SQL Managed instance und den Namen der SQL-Datenbank enthalten.

Im Folgenden finden Sie ein Beispiel zum Erstellen einer Datenquelle zum Indizieren von Daten aus einer SQL Managed Instance mithilfe der Create Data Source REST-API und einer verwalteten Identität Verbindungszeichenfolge. Das Connection-String-Format der verwalteten Identität ist für die REST-API, das .NET SDK und das Azure-Portal identisch.

POST https://[service name].search.windows.net/datasources?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]

{
    "name" : "sql-mi-datasource",
    "type" : "azuresql",
    "credentials" : { 
        "connectionString" : "Database=[SQL database name];ResourceId=/subscriptions/[subscription ID]/resourcegroups/[resource group name]/providers/Microsoft.Sql/managedInstances/[SQL Managed Instance name];Connection Timeout=100;"
    },
    "container" : { 
        "name" : "my-table" 
    }
} 

Erstellen des Indexes

Der Index gibt die Felder in einem Dokument, Attributen und anderen Konstrukten an, die die Suchoberfläche bilden.

Hier sehen Sie einen Create Index REST API-Aufruf mit einem durchsuchbaren booktitle Feld:

POST https://[service name].search.windows.net/indexes?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]

{
    "name" : "my-target-index",
    "fields": [
        { "name": "id", "type": "Edm.String", "key": true, "searchable": false },
        { "name": "booktitle", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false }
    ]
}

Erstellen des Indexers

Ein Indexer verbindet eine Datenquelle mit einem Zielsuchindex und bietet einen Zeitplan zum Automatisieren der Datenaktualisierung. Nachdem Sie den Index und die Datenquelle erstellt haben, erstellen Sie den Indexer.

Hier ist ein Create Indexer REST-API-Aufruf mit einer Azure SQL Indexerdefinition. Der Indexer wird ausgeführt, wenn Sie die Anforderung übermitteln.

POST https://[service name].search.windows.net/indexers?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]

{
    "name" : "sql-mi-indexer",
    "dataSourceName" : "sql-mi-datasource",
    "targetIndexName" : "my-target-index"
}

Problembehandlung

Wenn Sie einen Fehler erhalten, während der Indexer versucht, eine Verbindung zur Datenquelle herzustellen, wobei angezeigt wird, dass der Client keinen Zugriff auf den Server hat, sehen Sie unter allgemeine Indexerfehler nach.

Sie können auch Firewallprobleme ausschließen, indem Sie versuchen, die Verbindung mit und ohne Einschränkungen durchzuführen.

Siehe auch