Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Note
Azure AI-sökning är tillgängligt via Azure-portalen, REST-API:er och Azure-SDK:er. Den ligger också till grund för Foundry IQ, det hanterade kunskapsskiktet som omvandlar företagsinnehåll till återanvändbara, behörighetsmedvetna kunskapsbaser för agenter i Microsoft Foundry-portalen.
Den här artikeln beskriver hur du konfigurerar en indexeraranslutning till Azure SQL Database med hjälp av en hanterad identitet i stället för att ange autentiseringsuppgifter i reťazec pripojenia.
Du kan använda en systemtilldelad hanterad identitet eller en användartilldelad hanterad identitet. Hanterade identiteter är Microsoft Entra inloggningar och kräver Azure rolltilldelningar för åtkomst till data i Azure SQL.
Förutsättningar
Skapa en hanterad identitet för söktjänsten.
Tilldela en Azure-administratörsroll på SQL. Den identitet som används för indexerarens anslutning behöver läsbehörighet. Du måste vara en Microsoft Entra administratör med en server i SQL Database eller SQL Managed Instance för att bevilja läsbehörighet för en databas.
Du bör känna till indexerarens begrepp och konfiguration.
1 – Tilldela behörigheter för att läsa databasen
Följ stegen nedan för att tilldela söktjänsten eller användartilldelad hanterad identitet behörighet att läsa databasen.
Anslut till Visual Studio.
Autentisera med ditt Microsoft Entra-konto.
Kör följande kommandon:
Ta med hakparenteserna runt namnet på din söktjänst eller namnet på den användartilldelade hanterade identiteten.
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];
Om du senare ändrar söktjänstidentiteten eller den användartilldelade identiteten när du har tilldelat behörigheter måste du ta bort rollmedlemskapet och ta bort användaren i SQL-databasen och sedan upprepa behörighetstilldelningen. Du kan ta bort rollmedlemskapet och användaren genom att köra följande kommandon:
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 – Lägg till en rolltilldelning
I det här avsnittet ger du Azure AI-sökning-tjänsten behörighet att läsa data från din SQL Server. Detaljerade steg finns i Tilldela Azure roller med hjälp av Azure-portalen.
Gå till Azure SQL Server-sidan i Azure portalen.
Välj Åtkomstkontroll (IAM).
Välj Lägg till > rolltilldelning.
På fliken Roll väljer du lämplig läsarroll .
På fliken Medlemmar väljer du Hanterad identitet och väljer sedan Välj medlemmar.
Välj din Azure prenumeration.
Om du använder en systemtilldelad hanterad identitet väljer du Systemtilldelad hanterad identitet, söker efter söktjänsten och väljer den.
Om du använder en användartilldelad hanterad identitet väljer du Användartilldelad hanterad identitet, söker efter namnet på den användartilldelade hanterade identiteten och väljer den sedan.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
3 – Skapa datakällan
Skapa datakällan och ange antingen en systemtilldelad hanterad identitet eller användartilldelad hanterad identitet.
Systemtilldelad hanterad identitet
REST API, Azure-portalen och Azure-SDK:er stöder systemtilldelad hanterad identitet.
När du ansluter med en systemtilldelad hanterad identitet är den enda ändringen av datakällans definition formatet för egenskapen "autentiseringsuppgifter". Du anger ett initialt katalog- eller databasnamn och ett ResourceId som inte har någon kontonyckel eller lösenord. ResourceId måste innehålla prenumerations-ID för Azure SQL Database, resursgruppen för SQL Database och namnet på SQL-databasen.
Här är ett exempel på hur du skapar en datakälla för att indexera data från ett lagringskonto med hjälp av Skapa datakälla REST API och en anslutningssträng för hanterad identitet. Formatet för anslutningssträngen för hanterad identitet är detsamma för REST API, .NET SDK och Azure-portalen.
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"
}
}
Användartilldelad hanterad identitet
REST API version 2026-04-01 och senare stöder anslutningar baserat på en användartilldelad hanterad identitet. När du ansluter med en användartilldelad hanterad identitet finns det två ändringar i datakällans definition:
För det första är formatet för egenskapen "autentiseringsuppgifter" ett initialt katalog- eller databasnamn och ett ResourceId som inte har någon kontonyckel eller lösenord. ResourceId måste innehålla prenumerations-ID för Azure SQL Database, resursgruppen för SQL Database och namnet på SQL-databasen. Det här är samma format som den systemtilldelade hanterade identiteten.
För det andra lägger du till en "identitetsegenskap" som innehåller samlingen med användartilldelade hanterade identiteter. Endast en användartilldelad hanterad identitet ska anges när datakällan skapas. Ställ in den på typen "userAssignedIdentities".
Här är ett exempel på hur du skapar ett indexerardatakällans objekt med datakällor – Skapa eller uppdatera:
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 – Skapa indexet
Indexet anger fälten i ett dokument, attribut och andra konstruktioner som formar sökupplevelsen.
Här är ett REST API-anrop för skapa index med ett sökbart booktitle fält:
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 – Skapa indexeraren
En indexerare ansluter en datakälla till ett målsökningsindex och tillhandahåller ett schema för att automatisera datauppdateringen. När indexet och datakällan har skapats är du redo att skapa indexeraren. Om indexeraren lyckas är anslutningssyntaxen och rolltilldelningarna giltiga.
Här är ett Skapa indexerare REST API-anrop med en Azure SQL indexeraredefinition. Indexeraren körs när du skickar begäran.
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"
}
Om du får ett fel när indexeraren försöker ansluta till datakällan som säger att klienten inte har behörighet att komma åt servern kan du ta en titt på vanliga indexeringsfel.