Een indexeerfunctieverbinding met Azure SQL Managed Instance instellen met behulp van een beheerde identiteit

Note

Azure AI Zoeken is beschikbaar via de Azure-portal, REST API's en Azure-SDK's. Het vormt ook een basis voor Foundry IQ, de beheerde kennislaag die bedrijfsinhoud transformeert in herbruikbare, machtigingsbewuste knowledge bases voor agents in de Microsoft Foundry-portal.

In dit artikel wordt beschreven hoe u een Azure AI Zoeken-indexeerfunctieverbinding met SQL Managed Instance instelt met behulp van een beheerde identiteit in plaats van referenties op te geven in de verbindingsreeks.

U kunt een door het systeem toegewezen beheerde identiteit of een door de gebruiker toegewezen beheerde identiteit gebruiken. Beheerde identiteiten zijn Microsoft Entra aanmeldingen en vereisen Azure roltoewijzingen voor toegang tot gegevens in SQL Managed Instance.

Voordat u meer informatie over deze functie krijgt, moet u begrijpen wat een indexeerfunctie is en hoe u een indexeerfunctie instelt voor uw gegevensbron. Zie Indexers in Azure AI Zoeken en Indexgegevens uit Azure SQL Database voor meer informatie.

Voorwaarden

Machtigingen toewijzen om de database te lezen

Volg deze stappen om de beheerde identiteit van het zoekservicesysteem toe te wijzen om de beheerde SQL-database te lezen.

  1. Maak verbinding met uw SQL Managed Instance via SQL Server Management Studio (SSMS) met behulp van een van de volgende methoden:

  2. Verifieer met behulp van uw Microsoft Entra-account.

    Schermopname van het dialoogvenster Verbinding maken met server.

  3. Zoek in het linkerdeelvenster de SQL-database die u gebruikt als gegevensbron voor indexering en klik er met de rechtermuisknop op. Selecteer Nieuwe query.

    Schermopname van nieuwe SQL-query.

  4. Kopieer in het T-SQL-venster de volgende opdrachten en neem de haken rond de naam van uw zoekservice op. Selecteer Uitvoeren.

    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];
    

    Schermopname van het uitvoeren van een SQL-query.

Als u de identiteit van het zoekservicesysteem later wijzigt nadat u machtigingen hebt toegewezen, moet u het rollidmaatschap verwijderen en de gebruiker in de SQL-database verwijderen en vervolgens de machtigingstoewijzing herhalen. Voer de volgende commando's uit om het rollidmaatschap en de gebruiker te verwijderen:

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];

Een roltoewijzing toevoegen

In deze stap geeft u uw Azure AI Zoeken-service toestemming om gegevens uit uw SQL Managed Instance te lezen.

  1. Ga in de Azure-portal naar uw SQL Managed Instance pagina.

  2. Selecteer Toegangsbeheer (IAM).

  3. Selecteer Toevoegen>Roltoewijzing toevoegen.

    Schermafbeelding van de Access Control page.

  4. Selecteer de rol Lezer .

  5. Laat Toegang toewijzen aan als Microsoft Entra user, group, or service principal.

  6. Als u een door het systeem toegewezen beheerde identiteit gebruikt, zoekt u naar uw zoekservice en selecteert u deze. Als u een door de gebruiker toegewezen beheerde identiteit gebruikt, zoekt u naar de naam van de door de gebruiker toegewezen beheerde identiteit en selecteert u deze. Selecteer Opslaan.

    Hier volgt een voorbeeld voor SQL Managed Instance met behulp van een door het systeem toegewezen beheerde identiteit:

    Schermopname van de roltoewijzing van het lid.

De gegevensbron maken

Maak de gegevensbron en geef een door het systeem toegewezen beheerde identiteit op.

Door het systeem toegewezen beheerde identiteit

De REST-API, Azure-portal en de .NET SDK ondersteunen door het systeem toegewezen beheerde identiteit.

Wanneer u verbinding maakt met behulp van een door het systeem toegewezen beheerde identiteit, is de enige wijziging in de definitie van de gegevensbron de indeling van de eigenschap Referenties. U geeft een initiële catalogus of databasenaam op en een ResourceId die geen accountsleutel of wachtwoord bevat. De ResourceId moet de abonnements-id van SQL Managed Instance, de resourcegroep van SQL Managed instance en de naam van de SQL-database bevatten.

Hier volgt een voorbeeld van het maken van een gegevensbron voor het indexeren van gegevens uit een SQL Managed Instance met behulp van de Gegevensbron maken REST API en een beheerde identiteit verbindingsreeks. De indeling van de verbindingsreeks van de beheerde identiteit is hetzelfde voor de REST API, .NET SDK en de Azure Portal.

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" 
    }
} 

De index maken

De index geeft de velden in een document, kenmerken en andere constructies op die de zoekervaring vormgeven.

Hier volgt een REST API-aanroep voor index maken met een doorzoekbaar booktitle veld:

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 }
    ]
}

De indexeerfunctie maken

Een indexeerfunctie verbindt een gegevensbron met een doelzoekindex en biedt een schema voor het automatiseren van de gegevensvernieuwing. Nadat u de index en gegevensbron hebt gemaakt, maakt u de indexeerfunctie.

Hier volgt een Create Indexer REST API-aanroep met een Azure SQL indexeerfunctiedefinitie. De indexeerfunctie wordt uitgevoerd wanneer u de aanvraag indient.

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"
}

Probleemoplossing

Als er een fout optreedt wanneer de indexeerfunctie verbinding probeert te maken met de gegevensbron met de mededeling dat de client geen toegang heeft tot de server, raadpleegt u de veelvoorkomende indexeerfunctiefouten.

U kunt ook firewallproblemen uitsluiten door de verbinding met en zonder beperkingen in te stellen.

Zie ook