Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Note
Azure AI Search è disponibile tramite il portale di Azure, le API REST e Azure SDK. È inoltre alla base di Foundry IQ, il livello di conoscenza gestito che trasforma il contenuto aziendale in knowledge base riutilizzabili e con riconoscimento delle autorizzazioni per gli agenti nel portale di Microsoft Foundry.
Questo articolo descrive come configurare una connessione dell'indicizzatore Azure AI Search a Istanza gestita di SQL usando un'identità gestita anziché fornire le credenziali nel stringa di connessione.
È possibile usare un'identità gestita assegnata dal sistema o un'identità gestita assegnata dall'utente. Le identità gestite sono logins di Microsoft Entra e richiedono assegnazioni di ruolo di Azure per accedere ai dati in Istanza gestita di SQL.
Prima di ottenere altre informazioni su questa funzionalità, è necessario comprendere che cos'è un indicizzatore e come configurare un indicizzatore per l'origine dati. Per ulteriori informazioni, vedere Indicizzatori nel motore di ricerca Azure AI e Indicizzare dati dal database Azure SQL.
Prerequisiti
Creare un'identità gestita per il servizio di ricerca.
Ruolo di amministratore di Microsoft Entra in Istanza gestita di SQL:
Per assegnare autorizzazioni di lettura per Istanza gestita di SQL, è necessario essere un amministratore globale di Azure con un Istanza gestita di SQL. Vedere Configurare e gestire l'autenticazione Microsoft Entra con Istanza gestita di SQL e seguire la procedura per effettuare il provisioning di un amministratore Microsoft Entra (Istanza gestita di SQL).
Configurare un endpoint pubblico e un gruppo di sicurezza di rete in Istanza gestita di SQL per consentire le connessioni da Azure AI Search. La connessione tramite un collegamento privato condiviso quando si usa un'identità gestita non è attualmente supportata.
Assegnare le autorizzazioni per leggere il database
Seguire questa procedura per assegnare l'autorizzazione dell'identità gestita del sistema del servizio di ricerca per leggere il database gestito di SQL.
Connettersi al Istanza gestita di SQL tramite SQL Server Management Studio (SSMS) usando uno dei metodi seguenti:
Eseguire l'autenticazione usando l'account Microsoft Entra.
Nel riquadro sinistro individuare il database SQL usato come origine dati per l'indicizzazione e fare clic con il pulsante destro del mouse. Selezionare Nuova query.
Nella finestra T-SQL copiare i comandi seguenti e includere le parentesi quadre intorno al nome del servizio di ricerca. Selezionare Esegui.
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];
Se in seguito si modifica l'identità del sistema del servizio di ricerca dopo l'assegnazione delle autorizzazioni, è necessario rimuovere l'appartenenza al ruolo e rimuovere l'utente nel database SQL, quindi ripetere l'assegnazione delle autorizzazioni. Per rimuovere l'appartenenza al ruolo e l'utente, eseguire i comandi seguenti:
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];
Aggiungere un'assegnazione di ruolo
In questo passaggio si concede al servizio Azure AI Search l'autorizzazione per leggere i dati dal Istanza gestita di SQL.
Nel portale di Azure passare alla pagina Istanza gestita di SQL.
Selezionare Controllo di accesso (IAM).
Selezionare Aggiungi assegnazione>di ruolo.
Selezionare il ruolo Lettore .
Lasciare Assegna accesso a impostato su Utente, gruppo o entità servizio di Microsoft Entra.
Se si usa un'identità gestita assegnata dal sistema, cercare il servizio di ricerca e selezionarlo. Se si usa un'identità gestita assegnata dall'utente, cercare il nome dell'identità gestita assegnata dall'utente e selezionarla. Selezionare Salva.
Ecco un esempio per Istanza gestita di SQL usando un'identità gestita assegnata dal sistema:
Creare l'origine dati
Creare l'origine dati e fornire un'identità gestita assegnata dal sistema.
Identità gestita assegnata dal sistema
L'API REST, il portale di Azure e l'SDK .NET SDK supportano l'identità gestita assegnata dal sistema.
Quando ci si connette usando un'identità gestita assegnata dal sistema, l'unica modifica alla definizione dell'origine dati è il formato della proprietà "credentials". Si fornisce un nome di catalogo o database iniziale e un oggetto ResourceId senza chiave o password dell'account. Il ResourceId deve includere l'ID sottoscrizione di Istanza gestita di SQL, il gruppo di risorse di SQL Managed instance e il nome del database SQL.
Di seguito viene fornito un esempio di come creare una fonte di dati per indicizzare i dati da una Istanza gestita di SQL utilizzando l'API REST Create Data Source e una stringa di connessione con identità gestita. Il formato della stringa di connessione dell'identità gestita è lo stesso per l'API REST, .NET SDK e il portale di Azure.
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"
}
}
Creare l'indice
L'indice specifica i campi in un documento, attributi e altri costrutti che modellano l'esperienza di ricerca.
Ecco una chiamata all'API REST Create Index con un campo ricercabile booktitle :
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 }
]
}
Creare l'indicizzatore
Un indicizzatore connette un'origine dati con un indice di ricerca di destinazione e fornisce una pianificazione per automatizzare l'aggiornamento dei dati. Dopo aver creato l'indice e l'origine dati, creare l'indicizzatore.
Ecco una chiamata API REST Crea indicizzatore con una definizione dell'indicizzatore Azure SQL. L'indicizzatore viene eseguito quando si invia la richiesta.
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"
}
Risoluzione dei problemi
Se viene visualizzato un errore quando l'indicizzatore tenta di connettersi all'origine dati che indica che il client non è autorizzato ad accedere al server, vedere gli errori comuni dell'indicizzatore.
È anche possibile escludere eventuali problemi del firewall provando la connessione con e senza restrizioni.