Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 uitgelegd hoe u een indexeerfunctieverbinding met Azure SQL Database 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 Azure SQL.
Voorwaarden
Maak een beheerde identiteit voor uw zoekservice.
Wijs een Azure-beheerdersrol toe aan SQL. De identiteit die wordt gebruikt voor de verbinding met de indexeerfunctie, heeft leesmachtigingen nodig. U moet een Microsoft Entra-beheerder zijn met een server in SQL Database of SQL Managed Instance om leesmachtigingen voor een database te verlenen.
U moet bekend zijn met de concepten en configuratie van de indexeerfunctie.
1 - Machtigingen toewijzen om de database te lezen
Volg de onderstaande stappen om de machtiging voor de zoekservice of de door de gebruiker toegewezen beheerde identiteit toe te wijzen zodat ze de database kunnen lezen.
Maak verbinding met Visual Studio.
Verifieer met uw Microsoft Entra-account.
Voer de volgende opdrachten uit:
Neem de haken rond de naam van uw zoekservice of door de gebruiker toegewezen beheerde identiteitsnaam op.
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];
Als u later de identiteit van de zoekservice of door de gebruiker toegewezen identiteit wijzigt nadat u machtigingen hebt toegewezen, moet u het rollidmaatschap verwijderen en de gebruiker in de SQL-database verwijderen en vervolgens de machtigingstoewijzing herhalen. U kunt het rollenlidmaatschap en de gebruikersaccount verwijderen door de volgende opdrachten uit te voeren:
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];
2 - Een roltoewijzing toevoegen
In deze sectie geeft u uw Azure AI Zoeken service toestemming om gegevens uit uw SQL Server te lezen. Zie Assign Azure roles using the Azure portal voor gedetailleerde stappen.
Navigeer in de Azure-portal naar uw Azure SQL Server pagina.
Selecteer Toegangsbeheer (IAM).
Selecteer Roltoewijzing toevoegen.>
Selecteer op het tabblad Rol de juiste rol Lezer .
Selecteer beheerde identiteit op het tabblad Leden en selecteer vervolgens Leden selecteren.
Selecteer uw Azure-abonnement.
Als u een door het systeem toegewezen beheerde identiteit gebruikt, selecteert u door het systeem toegewezen beheerde identiteit, zoekt u uw zoekservice en selecteert u deze.
Als u een door de gebruiker toegewezen beheerde identiteit gebruikt, selecteert u gebruikers toegewezen beheerde identiteit, zoekt u de naam van de gebruikers toegewezen beheerde identiteit en selecteert u deze.
Selecteer Op het tabblad Beoordelen en toewijzen de optie Controleren + toewijzen om de rol toe te wijzen.
3 - De gegevensbron maken
Maak de gegevensbron en geef een door het systeem toegewezen beheerde identiteit of door de gebruiker toegewezen beheerde identiteit op.
Door het systeem toegewezen beheerde identiteit
De REST API, Azure portal en de Azure SDK's ondersteunen systeemtoegewezen beheerde identiteit.
Wanneer u verbinding maakt met 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 en een ResourceId op die geen accountsleutel of wachtwoord heeft. De ResourceId moet de abonnements-id van Azure SQL Database, de resourcegroep van SQL Database en de naam van de SQL-database bevatten.
Hier volgt een voorbeeld van het maken van een gegevensbron om data uit een opslagaccount te indexeren 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-datasource",
"type" : "azuresql",
"credentials" : {
"connectionString" : "Database=[SQL database name];ResourceId=/subscriptions/[subscription ID]/resourceGroups/[resource group name]/providers/Microsoft.Sql/servers/[SQL Server name];Connection Timeout=30;"
},
"container" : {
"name" : "my-table"
}
}
Door de gebruiker toegewezen beheerde identiteit
REST API-versie 2026-04-01 en hoger ondersteunen verbindingen op basis van een door de gebruiker toegewezen beheerde identiteit. Wanneer u verbinding maakt met een door de gebruiker toegewezen beheerde identiteit, zijn er twee wijzigingen in de definitie van de gegevensbron:
Ten eerste is het formaat van de eigenschap "referenties" een initiële catalogus of databasenaam en een ResourceId zonder accountsleutel of wachtwoord. De ResourceId moet de abonnements-id van Azure SQL Database, de resourcegroep van SQL Database en de naam van de SQL-database bevatten. Dit is dezelfde indeling als de door het systeem toegewezen beheerde identiteit.
Voeg ten tweede een 'identiteit'-eigenschap toe die de verzameling door de gebruiker toegewezen beheerde identiteiten bevat. Er moet slechts één door de gebruiker toegewezen beheerde identiteit worden opgegeven bij het maken van de gegevensbron. Stel deze in om 'userAssignedIdentities' te typen.
Hier volgt een voorbeeld van het maken van een gegevensbronobject voor een indexeerfunctie met behulp van gegevensbronnen - Maken of bijwerken:
POST https://[service name].search.windows.net/datasources?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]
{
"name" : "sql-datasource",
"type" : "azuresql",
"credentials" : {
"connectionString" : "Database=[SQL database name];ResourceId=/subscriptions/[subscription ID]/resourceGroups/[resource group name]/providers/Microsoft.Sql/servers/[SQL Server name];Connection Timeout=30;"
},
"container" : {
"name" : "my-table"
},
"identity" : {
"@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
"userAssignedIdentity" : "/subscriptions/[subscription ID]/resourcegroups/[resource group name]/providers/Microsoft.ManagedIdentity/userAssignedIdentities/[managed identity name]"
}
}
4 - 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 }
]
}
5 - De indexeerfunctie maken
Een indexeerfunctie verbindt een gegevensbron met een doelzoekindex en biedt een schema voor het automatiseren van de gegevensvernieuwing. Zodra de index en de gegevensbron zijn gemaakt, kunt u de indexeerfunctie maken. Als de indexeerfunctie is geslaagd, zijn de verbindingssyntaxis en roltoewijzingen geldig.
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-indexer",
"dataSourceName" : "sql-datasource",
"targetIndexName" : "my-target-index"
}
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, bekijkt u veelvoorkomende indexeerfunctiefouten.