Azure SQL- und Microsoft SQL Server Microsoft Graph-Connectors

Der Microsoft SQL Server- oder Azure SQL Microsoft Graph-Connector ermöglicht es Ihrem organization, Daten aus einer lokalen SQL Server-Datenbank oder einer datenbank, die in Ihrem Azure SQL instance in der Cloud gehostet wird, zu ermitteln und zu indizieren. Der Connector indiziert den angegebenen Inhalt in Microsoft Search. Um den Index mit Quelldaten auf dem neuesten Stand zu halten, unterstützt er regelmäßige vollständige und inkrementelle Durchforstungen. Mit diesen SQL-Connectors können Sie auch den Zugriff auf Suchergebnisse für bestimmte Benutzer einschränken.

Hinweis

Lesen Sie den Artikel Einrichten Ihres Microsoft Graph-Connectors , um die allgemeinen Anweisungen zum Einrichten von Graph-Connectors zu verstehen.

Dieser Artikel richtet sich an alle Benutzer, die einen Azure SQL oder einen Microsoft SQL Server-Connector konfigurieren, ausführen und überwachen. Es ergänzt den allgemeinen Einrichtungsprozess und zeigt Anweisungen, die nur für die Azure SQL- und Microsoft SQL Server-Connectors gelten. Dieser Artikel enthält auch Informationen zu Einschränkungen für beide Connectors.

Bevor Sie beginnen

Installieren des Microsoft Graph-Connector-Agents (nur für den lokalen Microsoft SQL Server-Connector erforderlich)

Um auf Ihre lokalen Drittanbieterdaten zuzugreifen, müssen Sie den Connector-Agent installieren und konfigurieren. Weitere Informationen finden Sie unter Installieren des Microsoft Graph-Connector-Agents .

Hinweis

Wenn Sie beim Konfigurieren des Microsoft SQL Server-Connectors Windows-Authentifizierung verwenden, muss der Benutzer, mit dem Sie sich anmelden möchten, über interaktive Anmelderechte auf dem Computer verfügen, auf dem der Connector-Agent installiert ist. Informationen zum Überprüfen der Anmelderechte finden Sie in der Dokumentation zur Verwaltung von Anmelderichtlinien .

Schritt 1: Hinzufügen eines Connectors im Microsoft 365 Admin Center

Befolgen Sie die allgemeinen Setupanweisungen.

Schritt 2: Benennen der Verbindung

Befolgen Sie die allgemeinen Setupanweisungen.

Schritt 3: Konfigurieren der Verbindungseinstellungen

Registrieren einer App (nur für Azure SQL Connector)

Für Azure SQL Connector müssen Sie eine App in Microsoft Entra ID registrieren, damit die Microsoft Search-App auf Daten für die Indizierung zugreifen kann. Weitere Informationen zum Registrieren einer App finden Sie in der Microsoft Graph-Dokumentation zum Registrieren einer App.

Nachdem Sie die App-Registrierung abgeschlossen und den App-Namen, die Anwendungs-ID (Client-ID) und die Mandanten-ID notieren, müssen Sie einen neuen geheimen Clientschlüssel generieren. Der geheime Clientschlüssel wird nur einmal angezeigt. Beachten Sie& den geheimen Clientschlüssel sicher zu speichern. Verwenden Sie die Client-ID und den geheimen Clientschlüssel beim Konfigurieren einer neuen Verbindung in Microsoft Search.

Zum Hinzufügen der registrierten App zu Ihrer Azure SQL-Datenbank müssen Sie Folgendes ausführen:

  • Melden Sie sich bei Ihrer Azure SQL-Datenbank an.
  • Öffnen eines neuen Abfragefensters
  • Erstellen Sie einen neuen Benutzer, indem Sie den Befehl "CREATE USER [App-Name] FROM EXTERNAL PROVIDER" ausführen.
  • Fügen Sie einen Benutzer zur Rolle hinzu, indem Sie den Befehl "exec sp_addrolemember 'db_datareader', [App-Name]" oder "ALTER ROLE db_datareader ADD MEMBER [App-Name]" ausführen.

Hinweis

Informationen zum Widerrufen des Zugriffs auf apps, die in Microsoft Entra ID registriert sind, finden Sie in der Azure-Dokumentation zum Entfernen einer registrierten App.

Verbindungseinstellungen

Um Ihren Microsoft SQL Server-Connector mit einer Datenquelle zu verbinden, müssen Sie den Datenbankserver, den Sie durchforsten möchten, und den lokalen Agent konfigurieren. Anschließend können Sie mit der erforderlichen Authentifizierungsmethode eine Verbindung mit der Datenbank herstellen.

Hinweis

  • Ihre Datenbank muss SQL Server Version 2008 oder höher ausgeführt werden, damit der Microsoft SQL Server Connector eine Verbindung herstellen kann.
  • Der Azure SQL-Connector erlaubt nur die Erfassung aus einem Azure SQL instance im selben Mandanten wie microsoft 365. Mandantenübergreifender Datenfluss wird nicht unterstützt.

Für den Azure SQL-Connector müssen Sie nur den Servernamen oder die IP-Adresse angeben, mit dem Sie eine Verbindung herstellen möchten. Azure SQL Connector unterstützt nur Microsoft Entra OIDC-Authentifizierung (OpenID Connect), um eine Verbindung mit der Datenbank herzustellen.

Um die Sicherheit zu erhöhen, können Sie IP-Firewallregeln für Ihre Azure SQL Server oder Datenbank konfigurieren. Weitere Informationen zum Einrichten von IP-Firewallregeln finden Sie in der Dokumentation zu IP-Firewallregeln. Fügen Sie die folgenden Client-IP-Adressbereiche in den Firewalleinstellungen hinzu.

Region M365 Enterprise M365 Government
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
APC 52.139.188.212/30, 20.43.146.44/30

Zum Durchsuchen des Datenbankinhalts müssen Sie sql-Abfragen angeben, wenn Sie den Connector konfigurieren. Diese SQL-Abfragen müssen alle Datenbankspalten benennen, die Sie indizieren möchten (d. h. Quelleigenschaften), einschließlich aller SQL-Joins, die ausgeführt werden müssen, um alle Spalten abzurufen. Um den Zugriff auf Suchergebnisse einzuschränken, müssen Sie Access Control Lists (ACLs) in SQL-Abfragen angeben, wenn Sie den Connector konfigurieren.

Schritt 3a: Vollständige Durchforstung (erforderlich)

In diesem Schritt konfigurieren Sie die SQL-Abfrage, die eine vollständige Durchforstung der Datenbank ausführt. Bei der vollständigen Durchforstung werden alle Spalten oder Eigenschaften ausgewählt, in denen Sie die Optionen Abfrage, Suche oder Abrufen auswählen möchten. Sie können auch ACL-Spalten angeben, um den Zugriff auf Suchergebnisse auf bestimmte Benutzer oder Gruppen einzuschränken.

Tipp

Um alle benötigten Spalten abzurufen, können Sie mehrere Tabellen verknüpfen.

Skript, das die OrderTable und AclTable mit Beispieleigenschaften zeigt.

Auswählen von Datenspalten (erforderlich) und ACL-Spalten (optional)

Das Beispiel zeigt eine Auswahl von fünf Datenspalten, die die Daten für die Suche enthalten: OrderId, OrderTitle, OrderDesc, CreatedDateTime und IsDeleted. Zum Festlegen von Ansichtsberechtigungen für jede Datenzeile können Sie optional die folgenden ACL-Spalten auswählen: AllowedUsers, AllowedGroups, DeniedUsers und DeniedGroups. Alle diese Datenspalten verfügen auch über die Optionen Abfrage, Suche oder Abrufen.

Wählen Sie Datenspalten aus, wie in dieser Beispielabfrage gezeigt: SELECT OrderId, OrderTitle, OrderDesc, AllowedUsers, AllowedGroups, DeniedUsers, DeniedGroups, CreatedDateTime, IsDeleted

Beachten Sie, dass die SQL-Connectors keine Spaltennamen mit nicht alphanumerischen Zeichen in der SELECT-Klausel zulassen. Entfernen Sie alle nicht alphanumerischen Zeichen aus Spaltennamen mithilfe eines Alias. Beispiel: SELECT column_name AS columnName

Um den Zugriff auf die Suchergebnisse zu verwalten, können Sie eine oder mehrere ACL-Spalten in der Abfrage angeben. Mit dem SQL-Connector können Sie den Zugriff auf Datensatzebene steuern. Sie können die gleiche Zugriffssteuerung für alle Datensätze in einer Tabelle verwenden. Wenn die ACL-Informationen in einer separaten Tabelle gespeichert sind, müssen Sie möglicherweise eine Verknüpfung mit diesen Tabellen in Ihrer Abfrage durchführen.

Die Verwendung der einzelnen ACL-Spalten in der obigen Abfrage wird unten beschrieben. In der folgenden Liste werden die vier Zugriffssteuerungsmechanismen erläutert.

  • AllowedUsers: Diese Spalte gibt die Liste der Benutzer-IDs an, die auf die Suchergebnisse zugreifen können. Im folgenden Beispiel hätte die Liste der Benutzer: john@contoso.com, keith@contoso.comund lisa@contoso.com nur Zugriff auf einen Datensatz mit OrderId = 12.
  • AllowedGroups: Diese Spalte gibt die Gruppe von Benutzern an, die auf die Suchergebnisse zugreifen können. Im folgenden Beispiel hätte group sales-team@contoso.com nur Zugriff auf den Datensatz mit OrderId = 12.
  • DeniedUsers: Diese Spalte gibt die Liste der Benutzer an, die keinen Zugriff auf die Suchergebnisse haben. Im folgenden Beispiel haben Benutzer john@contoso.com und keith@contoso.com keinen Zugriff auf den Datensatz mit OrderId = 13, während alle anderen Zugriff auf diesen Datensatz haben.
  • DeniedGroups: Diese Spalte gibt die Gruppe von Benutzern an, die keinen Zugriff auf die Suchergebnisse haben. Im folgenden Beispiel haben Gruppen engg-team@contoso.com und pm-team@contoso.com keinen Zugriff auf den Datensatz mit OrderId = 15, während alle anderen Zugriff auf diesen Datensatz haben.

Beispieldaten, die die OrderTable und AclTable mit Beispieleigenschaften zeigen.

Unterstützte Datentypen

In der folgenden Tabelle sind die SQL-Datentypen zusammengefasst, die in den MS SQL- und Azure SQL-Connectors unterstützt werden. Die Tabelle fasst auch den Indizierungsdatentyp für den unterstützten SQL-Datentyp zusammen. Weitere Informationen zu von Microsoft Graph-Connectors unterstützten Datentypen für die Indizierung finden Sie in der Dokumentation zu Eigenschaftenressourcentypen.

Kategorie Quelldatentyp Indizierungsdatentyp
Datum und Uhrzeit date
Datum/Uhrzeit
datetime2
Smalldatetime
Datum/Uhrzeit
Exakte Zahl Bigint
int
Smallint
Tinyint
int64
Exakte Zahl Bit Boolescher Wert
Ungefähre Zahl Gleitkommazahl
Real
double
Zeichenfolge Char
Varchar
text
string
Unicode-Zeichenfolgen Nchar
Nvarchar
Ntext
string
String collection Char
Varchar
text
Stringcollection*
Andere Datentypen Uniqueidentifier string

*Um eine Spalte als StringCollection indizieren zu können, müssen Sie eine Zeichenfolge in den Zeichenfolgensammlungstyp umwandeln. Klicken Sie dazu in den Einstellungen für vollständige Durchforstung auf den Link "Datentypen bearbeiten", wählen Sie die entsprechenden Spalten als StringCollection aus, und geben Sie ein Trennzeichen zum Teilen der Zeichenfolge an.

Für jeden anderen Datentyp, der derzeit nicht direkt unterstützt wird, muss die Spalte explizit in einen unterstützten Datentyp umgewandelt werden.

Wasserzeichen (erforderlich)

Um eine Überlastung der Datenbank zu verhindern, setzt der Connector Vollständige Durchforstungsabfragen in Batches mit einer Vollständigen Durchforstungswasserzeichenspalte fort. Mithilfe des Werts der Wasserzeichenspalte wird jeder nachfolgende Batch abgerufen, und die Abfrage wird ab dem letzten Prüfpunkt fortgesetzt. Im Wesentlichen steuert dieser Mechanismus die Datenaktualisierung für vollständige Durchforstungen.

Erstellen Sie Abfrageausschnitte für Wasserzeichen, wie in diesen Beispielen gezeigt:

  • WHERE (CreatedDateTime > @watermark). Zitieren Sie den Namen der Wasserzeichenspalte mit dem reservierten Schlüsselwort (keyword) @watermark. Wenn die Sortierreihenfolge der Wasserzeichenspalte aufsteigend ist, verwenden Sie >; andernfalls verwenden Sie <.
  • ORDER BY CreatedDateTime ASC. Sortieren Sie die Wasserzeichenspalte in aufsteigender oder absteigender Reihenfolge.

In der in der folgenden Abbildung gezeigten CreatedDateTime Konfiguration ist die ausgewählte Wasserzeichenspalte. Um den ersten Batch von Zeilen abzurufen, geben Sie den Datentyp der Wasserzeichenspalte an. In diesem Fall ist DateTimeder Datentyp .

Konfiguration der Wasserzeichenspalte.

Die erste Abfrage ruft die erste N Zeilenanzahl mit ab: "CreatedDateTime > 1. January 1753 00:00:00" (Mindestwert des DateTime-Datentyps). Nachdem der erste Batch abgerufen wurde, wird der höchste im Batch zurückgegebene Wert CreatedDateTime als Prüfpunkt gespeichert, wenn die Zeilen in aufsteigender Reihenfolge sortiert werden. Ein Beispiel ist der 1. März 2019 um 03:00:00 Uhr. Anschließend wird der nächste Batch von N Zeilen mithilfe von "CreatedDateTime > 1. März 2019 03:00:00" in der Abfrage abgerufen.

Überspringen vorläufig gelöschter Zeilen (optional)

Um vorläufig gelöschte Zeilen in Ihrer Datenbank von der Indizierungen auszuschließen, geben Sie den Spaltennamen und den Wert für vorläufiges Löschen an, der angibt, dass die Zeile gelöscht wurde.

Einstellungen für vorläufiges Löschen:

Vollständige Durchforstung: Verwalten von Suchberechtigungen

Wählen Sie Berechtigungen verwalten aus, um die verschiedenen Zugriffssteuerungsspalten (Access Control, ACL) auszuwählen, die den Zugriffssteuerungsmechanismus angeben. Wählen Sie den Spaltennamen aus, den Sie in der vollständigen SQL-Durchforstungsabfrage angegeben haben.

Es wird erwartet, dass jede der ACL-Spalten eine mehrwertige Spalte ist. Diese mehrfachen ID-Werte können durch Trennzeichen wie Semikolon (;), Komma (,) usw. getrennt werden. Sie müssen dieses Trennzeichen im Werttrennzeichenfeld angeben.

Die folgenden ID-Typen werden für die Verwendung als ACLs unterstützt:

  • Benutzerprinzipalname (UPN): Ein Benutzerprinzipalname (USER Principal Name, UPN) ist der Name eines Systembenutzers im E-Mail-Adressformat. Ein UPN (z. B. john.doe@domain.com) besteht aus dem Benutzernamen (Anmeldename), dem Trennzeichen (dem @-Symbol) und dem Domänennamen (UPN-Suffix).
  • Microsoft Entra-ID: In Microsoft Entra-ID verfügt jeder Benutzer oder jede Gruppe über eine Objekt-ID, die etwa wie "e0d3ad3d-0000-1111-2222-3c5f5c52ab9b" aussieht.
  • Active Directory-Sicherheits-ID (AD): In einem lokalen AD-Setup verfügt jeder Benutzer und jede Gruppe über eine unveränderliche, eindeutige Sicherheits-ID, die in etwa wie "S-1-5-21-3878594291-2115959936-132693609-65242" aussieht.

Suchberechtigungseinstellungen zum Konfigurieren von Zugriffssteuerungslisten.

Schritt 3b: Inkrementelle Durchforstung (optional)

Geben Sie in diesem optionalen Schritt eine SQL-Abfrage an, um eine inkrementelle Durchforstung der Datenbank auszuführen. Mit dieser Abfrage bestimmt der SQL-Connector alle Änderungen an den Daten seit der letzten inkrementellen Durchforstung. Wählen Sie wie bei der vollständigen Durchforstung alle Spalten aus, in denen Sie die Optionen Abfrage, Suche oder Abrufen auswählen möchten. Geben Sie den gleichen Satz von ACL-Spalten an, den Sie in der vollständigen Durchforstungsabfrage angegeben haben.

Die Komponenten in der folgenden Abbildung ähneln den vollständigen Durchforstungskomponenten mit einer Ausnahme. In diesem Fall ist "ModifiedDateTime" die ausgewählte Wasserzeichenspalte. Sehen Sie sich die vollständigen Durchforstungsschritte an, um zu erfahren, wie Sie Ihre Abfrage für die inkrementelle Durchforstung schreiben, und sehen Sie sich die folgende Abbildung als Beispiel an.

Skript für die inkrementelle Durchforstung mit OrderTable, AclTable und Beispieleigenschaften, die verwendet werden können.

Schritt 4: Zuweisen von Eigenschaftenbezeichnungen

Befolgen Sie die allgemeinen Setupanweisungen.

Schritt 5: Verwalten des Schemas

Befolgen Sie die allgemeinen Setupanweisungen.

Schritt 6: Verwalten von Suchberechtigungen

Sie können die acLs verwenden, die im vollständigen Durchforstungsbildschirm angegeben sind , oder Sie können sie überschreiben, um Ihre Inhalte für alle sichtbar zu machen.

Schritt 7: Auswählen der Aktualisierungseinstellungen

Befolgen Sie die allgemeinen Setupanweisungen.

Schritt 8: Überprüfen der Verbindung

Befolgen Sie die allgemeinen Setupanweisungen.

Problembehandlung

Im Folgenden finden Sie einen häufigen Fehler, der beim Konfigurieren des Connectors beobachtet wird, und dessen mögliche Ursache.

Konfigurationsschritt Fehlermeldung Mögliche Gründe
Vollständige Durchforstung Error from database server: A transport level error has occurred when receiving results from the server. Dieser Fehler tritt aufgrund von Netzwerkproblemen auf. Es wird empfohlen, Netzwerkprotokolle mithilfe des Microsoft-Netzwerkmonitors zu überprüfen und sich an den Microsoft-Kundensupport zu wenden.
Vollständige Durchforstung Column column_name returned from full crawl SQL query contains non-alphanumeric character Nicht alphanumerische Zeichen (z. B. Unterstriche) sind in Spaltennamen in der SELECT-Klausel nicht zulässig. Verwenden Sie Aliase, um Spalten umzubenennen und nicht alphanumerische Zeichen zu entfernen (Beispiel : SELECT column_name AS columnName).

Begrenzungen

Die SQL-Connectors weisen in der Vorschauversion folgende Einschränkungen auf:

  • Microsoft SQL Server Connector: Die lokale Datenbank muss SQL Server Version 2008 oder höher ausgeführt werden.
  • Das Microsoft 365-Abonnement und das Azure-Abonnement (hosten Azure SQL Datenbank) müssen sich innerhalb derselben Microsoft Entra-ID befinden.
  • ACLs werden nur mithilfe eines Benutzerprinzipalnamens (User Principal Name, UPN), Microsoft Entra-ID oder Active Directory-Sicherheit unterstützt.
  • Das Indizieren von umfangreichen Inhalten in Datenbankspalten wird nicht unterstützt. Beispiele für solche Inhalte sind HTML, JSON, XML, Blobs und Dokumentanalysen, die als Links in den Datenbankspalten vorhanden sind.