Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Note
Recherche Azure AI est disponible via le portail Azure, les API REST et les SDK Azure. Il sous-tend également Foundry IQ, la couche de connaissances managée qui transforme le contenu d’entreprise en bases de connaissances réutilisables et prenant en charge les autorisations pour les agents dans le portail Microsoft Foundry.
Cet article explique comment configurer une connexion d’indexeur Recherche Azure AI à SQL Managed Instance à l’aide d’une identité managée au lieu de fournir des informations d’identification dans le chaîne de connexion.
Vous pouvez utiliser une identité managée affectée par le système ou une identité managée affectée par l’utilisateur. Les identités gérées sont des connexions Microsoft Entra et nécessitent des attributions de rôles Azure pour accéder aux données dans SQL Managed Instance.
Avant d’en savoir plus sur cette fonctionnalité, vous devez comprendre ce qu’est un indexeur et comment configurer un indexeur pour votre source de données. Pour plus d’informations, consultez Indexers dans Recherche Azure AI et Indexer des données de Azure SQL Database.
Conditions préalables
Créez une identité managée pour votre service de recherche.
Rôle d'administrateur Microsoft Entra sur une instance SQL gérée :
Pour attribuer des autorisations de lecture sur SQL Managed Instance, vous devez être un administrateur général Azure avec un SQL Managed Instance. Consultez Configure et gérez l’authentification Microsoft Entra avec SQL Managed Instance et suivez les étapes pour provisionner un administrateur Microsoft Entra (SQL Managed Instance).
Configurer un point de terminaison public et un groupe de sécurité réseau dans SQL Managed Instance pour autoriser les connexions à partir de Recherche Azure AI. La connexion via une liaison privée partagée lors de l’utilisation d’une identité managée n’est pas prise en charge actuellement.
Attribuer des autorisations pour lire la base de données
Suivez ces étapes pour attribuer au service de recherche l’autorisation de l’identité managée système pour lire la base de données SQL Managed Instance.
Connectez-vous à votre SQL Managed Instance via SQL Server Management Studio (SSMS) à l’aide de l’une des méthodes suivantes :
Authentifiez-vous à l’aide de votre compte Microsoft Entra.
Dans le volet gauche, recherchez la base de données SQL que vous utilisez comme source de données pour l’indexation et cliquez dessus avec le bouton droit. Sélectionnez Nouvelle requête.
Dans la fenêtre T-SQL, copiez les commandes suivantes et incluez les crochets autour du nom de votre service de recherche. Sélectionnez Exécuter.
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];
Si vous modifiez ultérieurement l’identité du système de service de recherche après avoir affecté des autorisations, vous devez supprimer l’appartenance au rôle et supprimer l’utilisateur dans la base de données SQL, puis répéter l’attribution d’autorisations. Pour supprimer l’appartenance au rôle et l’utilisateur, exécutez les commandes suivantes :
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];
Ajouter une attribution de rôle
Dans cette étape, vous accordez à votre service Recherche Azure AI l’autorisation de lire des données à partir de votre SQL Managed Instance.
Dans le portail Azure, accédez à votre page SQL Managed Instance.
Sélectionnez Contrôle d’accès (IAM).
Sélectionnez Ajouter une>attribution de rôle.
Sélectionnez le rôle Lecteur .
Laissez l’option Attribuer l’accès à définie sur Utilisateur, groupe ou principal de service Microsoft Entra.
Si vous utilisez une identité managée affectée par le système, recherchez votre service de recherche et sélectionnez-le. Si vous utilisez une identité managée affectée par l’utilisateur, recherchez le nom de l’identité managée affectée par l’utilisateur et sélectionnez-la. Sélectionnez Enregistrer.
Voici un exemple pour SQL Managed Instance à l'aide d'une identité managée affectée par le système :
Créer la source de données
Créez la source de données et fournissez une identité managée affectée par le système.
Identité managée affectée par le système
L’API REST, le portail Azure et le sdk .NET prennent en charge l’identité managée affectée par le système.
Lorsque vous vous connectez à l’aide d’une identité managée affectée par le système, la seule modification apportée à la définition de la source de données est le format de la propriété « credentials ». Vous fournissez un nom de catalogue initial ou de base de données et un ResourceId sans clé de compte ni mot de passe. Le ResourceId doit inclure l’ID d’abonnement de SQL Managed Instance, le groupe de ressources de SQL Managed instance et le nom de la base de données SQL.
Voici un exemple de création d'une source de données pour indexer des données à partir d'un SQL Managed Instance en utilisant l'API REST Create Data Source et une chaîne de connexion d'identité managée. Le format de chaîne de connexion d’identité managée est le même pour l'API REST, le SDK .NET, et le portail 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"
}
}
Créer l’index
L’index spécifie les champs d’un document, d’attributs et d’autres constructions qui forment l’expérience de recherche.
Voici un appel d’API REST Create Index avec un champ pouvant booktitle faire l’objet d’une recherche :
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 }
]
}
Créer l’indexeur
Un indexeur connecte une source de données à un index de recherche cible et fournit une planification pour automatiser l’actualisation des données. Après avoir créé l’index et la source de données, créez l’indexeur.
Voici un appel d'API REST Create Indexer avec une définition d'indexeur Azure SQL. L’indexeur s’exécute lorsque vous envoyez la demande.
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"
}
Dépannage
Si vous obtenez une erreur lorsque l’indexeur tente de se connecter à la source de données qui indique que le client n’est pas autorisé à accéder au serveur, consultez les erreurs courantes de l’indexeur.
Vous pouvez également exclure tous les problèmes de pare-feu en essayant la connexion avec et sans restrictions en place.