connecteurs Microsoft Graph Azure SQL et Microsoft SQL Server

Le connecteur Microsoft SQL Server ou Azure SQL Microsoft Graph permet à votre organization de découvrir et d’indexer des données à partir d’une base de données SQL Server locale ou d’une base de données hébergée dans votre Azure SQL instance dans le cloud. Le connecteur indexe le contenu spécifié dans Recherche Microsoft. Pour maintenir l’index à jour avec les données sources, il prend en charge les analyses complètes et incrémentielles périodiques. Avec ces connecteurs SQL, vous pouvez également restreindre l’accès aux résultats de recherche pour certains utilisateurs.

Remarque

Lisez l’article Configurer votre connecteur Microsoft Graph pour comprendre les instructions générales de configuration des connecteurs Graph.

Cet article s’adresse à toute personne qui configure, exécute et surveille un Azure SQL ou un connecteur Microsoft SQL Server. Il complète le processus de configuration générale et affiche des instructions qui s’appliquent uniquement aux connecteurs Azure SQL et Microsoft SQL Server. Cet article contient également des informations sur les limitations des deux connecteurs.

Avant de commencer

Installer l’agent de connecteur Microsoft Graph (requis pour le connecteur Microsoft SQL Server local uniquement)

Pour accéder à vos données tierces locales, vous devez installer et configurer l’agent de connecteur. Pour en savoir plus , consultez Installer l’agent de connecteur Microsoft Graph .

Remarque

Si vous utilisez Authentification Windows lors de la configuration du connecteur Microsoft SQL Server, l’utilisateur avec lequel vous essayez de vous connecter doit disposer de droits d’ouverture de session interactifs sur l’ordinateur sur lequel l’agent de connecteur est installé. Reportez-vous à la documentation sur la gestion des stratégies d’ouverture de session pour case activée droits d’ouverture de session.

Étape 1 : Ajouter un connecteur dans le Centre d'administration Microsoft 365

Suivez les instructions d’installation générales.

Étape 2 : Nommer la connexion

Suivez les instructions d’installation générales.

Étape 3 : Configurer les paramètres de connexion

Inscrire une application (pour Azure SQL connecteur uniquement)

Pour Azure SQL connecteur, vous devez inscrire une application dans Microsoft Entra ID pour permettre à l’application Recherche Microsoft d’accéder aux données à des fins d’indexation. Pour en savoir plus sur l’inscription d’une application, reportez-vous à la documentation Microsoft Graph sur l’inscription d’une application.

Après avoir terminé l’inscription de l’application et pris note du nom de l’application, de l’ID d’application (client) et de l’ID de locataire, vous devez générer une nouvelle clé secrète client. La clé secrète client ne s’affiche qu’une seule fois. N’oubliez pas de noter & stocker la clé secrète client en toute sécurité. Utilisez l’ID client et la clé secrète client lors de la configuration d’une nouvelle connexion dans Recherche Microsoft.

Pour ajouter l’application inscrite à votre base de données Azure SQL, vous devez :

  • Connectez-vous à votre base de données Azure SQL
  • Ouvrir une nouvelle fenêtre de requête
  • Créez un utilisateur en exécutant la commande « CREATE USER [app name] FROM EXTERNAL PROVIDER »
  • Ajoutez un utilisateur au rôle en exécutant la commande « exec sp_addrolemember 'db_datareader', [nom de l’application] » ou « ALTER ROLE db_datareader ADD MEMBER [nom de l’application] »

Remarque

Pour révoquer l’accès à une application inscrite dans Microsoft Entra ID, reportez-vous à la documentation Azure sur la suppression d’une application inscrite.

Paramètres de connexion

Pour connecter votre connecteur Microsoft SQL Server à une source de données, vous devez configurer le serveur de base de données que vous souhaitez analyser et l’agent local. Vous pouvez ensuite vous connecter à la base de données avec la méthode d’authentification requise.

Remarque

  • Votre base de données doit s’exécuter SQL Server version 2008 ou ultérieure pour que le connecteur Microsoft SQL Server puisse se connecter.
  • Le connecteur Azure SQL autorise uniquement l’ingestion à partir d’un Azure SQL instance dans le même locataire que Microsoft 365. Le flux de données interlocataire n’est pas pris en charge.

Pour le connecteur Azure SQL, il vous suffit de spécifier le nom ou l’adresse IP du serveur auquel vous souhaitez vous connecter. Azure SQL connecteur prend uniquement en charge l’authentification OpenID Connect (OIDC) d’ID Microsoft Entra pour se connecter à la base de données.

Pour renforcer la sécurité, vous pouvez configurer des règles de pare-feu IP pour votre serveur ou base de données Azure SQL. Pour en savoir plus sur la configuration des règles de pare-feu IP, consultez la documentation sur les règles de pare-feu IP. Ajoutez les plages d’adresses IP clientes suivantes dans les paramètres de pare-feu.

Région M365 Entreprise M365 Gouvernement
NAM 52.250.92.252/30, 52.224.250.216/30 52.245.230.216/30, 20.141.117.64/30
EUR 20.54.41.208/30, 51.105.159.88/30 N/A
APC 52.139.188.212/30, 20.43.146.44/30 N/A

Pour rechercher le contenu de votre base de données, vous devez spécifier des requêtes SQL lorsque vous configurez le connecteur. Ces requêtes SQL doivent nommer toutes les colonnes de base de données que vous souhaitez indexer (c’est-à-dire les propriétés sources), y compris toutes les jointures SQL qui doivent être effectuées pour obtenir toutes les colonnes. Pour restreindre l’accès aux résultats de la recherche, vous devez spécifier des listes Access Control (ACL) dans les requêtes SQL lorsque vous configurez le connecteur.

Étape 3a : Analyse complète (obligatoire)

Dans cette étape, vous allez configurer la requête SQL qui exécute une analyse complète de la base de données. L’analyse complète sélectionne toutes les colonnes ou propriétés dans lesquelles vous souhaitez sélectionner les options Interroger, Rechercher ou Récupérer. Vous pouvez également spécifier des colonnes ACL pour restreindre l’accès des résultats de la recherche à des utilisateurs ou des groupes spécifiques.

Conseil

Pour obtenir toutes les colonnes dont vous avez besoin, vous pouvez joindre plusieurs tables.

Script montrant orderTable et AclTable avec des exemples de propriétés.

Sélectionner des colonnes de données (Obligatoire) et des colonnes ACL (Facultatif)

L’exemple illustre une sélection de cinq colonnes de données qui contiennent les données pour la recherche : OrderId, OrderTitle, OrderDesc, CreatedDateTime et IsDeleted. Pour définir les autorisations d’affichage pour chaque ligne de données, vous pouvez éventuellement sélectionner les colonnes ACL suivantes : AllowedUsers, AllowedGroups, DeniedUsers et DeniedGroups. Toutes ces colonnes de données ont également les options Interroger, Rechercher ou Récupérer.

Sélectionnez des colonnes de données comme indiqué dans cet exemple de requête : SELECT OrderId, OrderTitle, OrderDesc, AllowedUsers, AllowedGroups, DeniedUsers, DeniedGroups, CreatedDateTime, IsDeleted

Notez que les connecteurs SQL n’autorisent pas les noms de colonnes avec des caractères non alphanumériques dans la clause SELECT. Supprimez les caractères non alphanumériques des noms de colonnes à l’aide d’un alias. Exemple : SELECT column_name AS columnName

Pour gérer l’accès aux résultats de la recherche, vous pouvez spécifier une ou plusieurs colonnes ACL dans la requête. Le connecteur SQL vous permet de contrôler l’accès par niveau d’enregistrement. Vous pouvez choisir d’avoir le même contrôle d’accès pour tous les enregistrements d’une table. Si les informations de liste de contrôle d’accès sont stockées dans une table distincte, vous devrez peut-être effectuer une jointure avec ces tables dans votre requête.

L’utilisation de chacune des colonnes de liste de contrôle d’accès dans la requête ci-dessus est décrite ci-dessous. La liste suivante décrit les quatre mécanismes de contrôle d’accès.

  • AllowedUsers : cette colonne spécifie la liste des ID d’utilisateur qui peuvent accéder aux résultats de la recherche. Dans l’exemple suivant, la liste des utilisateurs : john@contoso.com, keith@contoso.comet lisa@contoso.com n’ont accès qu’à un enregistrement avec OrderId = 12.
  • AllowedGroups : cette colonne spécifie le groupe d’utilisateurs qui pourront accéder aux résultats de la recherche. Dans l’exemple suivant, le groupe sales-team@contoso.com a uniquement accès à l’enregistrement avec OrderId = 12.
  • DeniedUsers : cette colonne spécifie la liste des utilisateurs qui n’ont pas accès aux résultats de la recherche. Dans l’exemple suivant, les utilisateurs john@contoso.com et keith@contoso.com n’ont pas accès à l’enregistrement avec OrderId = 13, tandis que tout le monde a accès à cet enregistrement.
  • DeniedGroups : cette colonne spécifie le groupe d’utilisateurs qui n’ont pas accès aux résultats de la recherche. Dans l’exemple suivant, les groupes engg-team@contoso.com et pm-team@contoso.com n’ont pas accès à l’enregistrement avec OrderId = 15, tandis que tous les autres ont accès à cet enregistrement.

Exemples de données montrant OrderTable et AclTable avec des exemples de propriétés.

Types de données pris en charge

Le tableau ci-dessous récapitule les types de données SQL pris en charge dans les connecteurs MS SQL et Azure SQL. Le tableau récapitule également le type de données d’indexation pour le type de données SQL pris en charge. Pour en savoir plus sur les types de données pris en charge par les connecteurs Microsoft Graph pour l’indexation, consultez la documentation sur les types de ressources de propriété.

Catégorie Type de données source Type de données d’indexation
Date et heure date
DateHeure
datetime2
Smalldatetime
DateHeure
Numérique exact Bigint
int
smallint
Tinyint
int64
Numérique exact Peu valeur booléenne
Nombre approximatif float
Réel
double
Chaîne de caractères char
Varchar
text
string
Chaînes de caractères Unicode Nchar
Nvarchar
Ntext
string
Collection de chaînes char
Varchar
text
Stringcollection*
Autres types de données Uniqueidentifier string

*Pour indexer une colonne en tant que StringCollection, vous devez convertir une chaîne en type de collection de chaînes. Pour ce faire, cliquez sur le lien « Modifier les types de données » dans paramètres d’analyse complète et sélectionnez les colonnes appropriées comme StringCollection et spécifiez un délimiteur pour fractionner la chaîne.

Pour tout autre type de données actuellement non pris en charge directement, la colonne doit être explicitement convertie en type de données pris en charge.

Filigrane (obligatoire)

Pour éviter la surcharge de la base de données, le connecteur traite et reprend les requêtes d’analyse complète avec une colonne de filigrane d’analyse complète. En utilisant la valeur de la colonne de filigrane, chaque lot suivant est extrait et l’interrogation reprend à partir du dernier point de contrôle. Essentiellement, ce mécanisme contrôle l’actualisation des données pour les analyses complètes.

Créez des extraits de requête pour les filigranes, comme indiqué dans les exemples suivants :

  • WHERE (CreatedDateTime > @watermark). Citez le nom de colonne de filigrane avec le mot clé @watermarkréservé. Si l’ordre de tri de la colonne de filigrane est croissant, utilisez >; sinon, utilisez <.
  • ORDER BY CreatedDateTime ASC. Triez sur la colonne de filigrane dans l’ordre croissant ou décroissant.

Dans la configuration illustrée dans l’image suivante, CreatedDateTime est la colonne de filigrane sélectionnée. Pour extraire le premier lot de lignes, spécifiez le type de données de la colonne de filigrane. Dans ce cas, le type de données est DateTime.

Configuration de colonne de filigrane.

La première requête extrait le premier N nombre de lignes en utilisant : « CreatedDateTime > 1er janvier 1753 00 :00 :00 » (valeur minimale du type de données DateTime). Une fois le premier lot récupéré, la valeur la plus élevée retournée CreatedDateTime dans le lot est enregistrée en tant que point de contrôle si les lignes sont triées dans l’ordre croissant. Par exemple, le 1er mars 2019 03 :00 :00. Ensuite, le lot suivant de N lignes est extrait à l’aide de « CreatedDateTime > 1er mars 2019 03 :00 :00 » dans la requête.

Ignorer les lignes supprimées de manière réversible (facultatif)

Pour exclure l’indexation des lignes supprimées de manière réversible dans votre base de données, spécifiez le nom et la valeur de la colonne de suppression réversible qui indiquent que la ligne est supprimée.

Paramètres de suppression réversible : « Colonne de suppression réversible » et « Valeur de la colonne de suppression réversible qui indique une ligne supprimée ».

Analyse complète : Gérer les autorisations de recherche

Sélectionnez Gérer les autorisations pour choisir les différentes colonnes de contrôle d’accès (ACL) qui spécifient le mécanisme de contrôle d’accès. Sélectionnez le nom de colonne que vous avez spécifié dans la requête SQL d’analyse complète.

Chacune des colonnes de liste de contrôle d’accès doit être une colonne à valeurs multiples. Ces valeurs d’ID multiples peuvent être séparées par des séparateurs tels que des points-virgules (;), virgule (,), etc. Vous devez spécifier ce séparateur dans le champ séparateur de valeur .

Les types d’ID suivants sont pris en charge pour l’utilisation en tant que listes de contrôle d’accès :

  • Nom d’utilisateur principal (UPN) : un nom d’utilisateur principal (UPN) est le nom d’un utilisateur système au format d’adresse e-mail. Un UPN (par exemple : john.doe@domain.com) se compose du nom d’utilisateur (nom d’ouverture de session), du séparateur (symbole @) et du nom de domaine (suffixe UPN).
  • ID Microsoft Entra : dans Microsoft Entra ID, chaque utilisateur ou groupe a un ID d’objet qui ressemble à « e0d3ad3d-0000-1111-2222-3c5f5c52ab9b ».
  • ID de sécurité Active Directory (AD) : dans une configuration AD locale, chaque utilisateur et groupe ont un identificateur de sécurité unique immuable qui ressemble à « S-1-5-21-3878594291-2115959936-132693609-65242 ».

Rechercher des paramètres d’autorisation pour configurer des listes de contrôle d’accès.

Étape 3b : Analyse incrémentielle (facultatif)

Dans cette étape facultative, fournissez une requête SQL pour exécuter une analyse incrémentielle de la base de données. Avec cette requête, le connecteur SQL détermine les modifications apportées aux données depuis la dernière analyse incrémentielle. Comme dans l’analyse complète, sélectionnez toutes les colonnes dans lesquelles vous souhaitez sélectionner les options Interroger, Rechercher ou Récupérer. Spécifiez le même ensemble de colonnes de liste de contrôle d’accès que celui que vous avez spécifié dans la requête d’analyse complète.

Les composants de l’image suivante ressemblent aux composants d’analyse complets, à une exception près. Dans ce cas, « ModifiedDateTime » est la colonne de filigrane sélectionnée. Passez en revue les étapes d’analyse complètes pour savoir comment écrire votre requête d’analyse incrémentielle et voir l’image suivante comme exemple.

Script d’analyse incrémentielle montrant OrderTable, AclTable et des exemples de propriétés qui peuvent être utilisées.

Étape 4 : Attribuer des étiquettes de propriété

Suivez les instructions d’installation générales.

Étape 5 : Gérer le schéma

Suivez les instructions d’installation générales.

Étape 6 : Gérer les autorisations de recherche

Vous pouvez choisir d’utiliser les listes de contrôle d’accès spécifiées dans l’écran d’analyse complet ou vous pouvez les remplacer pour rendre votre contenu visible par tout le monde.

Étape 7 : Choisir les paramètres d’actualisation

Suivez les instructions d’installation générales.

Étape 8 : Vérifier la connexion

Suivez les instructions d’installation générales.

Résolution des problèmes

Voici une erreur courante observée lors de la configuration du connecteur et sa raison possible.

Étape de configuration Message d’erreur Raison(s) possible(s)
Analyse complète Error from database server: A transport level error has occurred when receiving results from the server. Cette erreur se produit en raison de problèmes réseau. Il est recommandé de case activée journaux réseau à l’aide du moniteur réseau Microsoft et de contacter le support technique Microsoft.
Analyse complète Column column_name returned from full crawl SQL query contains non-alphanumeric character Les caractères non alphanumériques (comme les traits de soulignement) ne sont pas autorisés dans les noms de colonnes dans la clause SELECT. Utilisez des alias pour renommer des colonnes et supprimer des caractères non alphanumériques (exemple - SELECT column_name AS columnName).

Limitations

Les connecteurs SQL présentent ces limitations dans la préversion :

  • Connecteur Microsoft SQL Server : la base de données locale doit s’exécuter SQL Server version 2008 ou ultérieure.
  • L’abonnement Microsoft 365 et l’abonnement Azure (hébergeant Azure SQL base de données) doivent se trouver dans le même ID Microsoft Entra.
  • Les listes de contrôle d’accès sont uniquement prises en charge à l’aide d’un nom d’utilisateur principal (UPN), d’un ID Microsoft Entra ou d’une sécurité Active Directory.
  • L’indexation de contenu enrichi à l’intérieur des colonnes de base de données n’est pas prise en charge. Des exemples de ce contenu sont HTML, JSON, XML, objets blob et analyses de documents qui existent sous forme de liens à l’intérieur des colonnes de base de données.