Schrittweise Anleitung für den generischen SQL-Connector

Dieses Thema ist eine Schritt-für-Schritt-Anleitung. Damit erstellen Sie eine einfache HR-Beispieldatenbank und verwenden sie, um einige Benutzer und ihre Gruppenmitgliedschaft zu importieren.

Hinweis

Microsoft Entra-ID bietet jetzt eine einfache Agent-basierte Lösung zum Bereitstellen von Benutzern in einer SQL-Datenbank, ohne dass eine MIM-Synchronisierungsbereitstellung erforderlich ist. Es wird empfohlen, sie für die bereitstellung ausgehender Benutzer zu verwenden. Weitere Informationen

Vorbereiten der Beispieldatenbank

Führen Sie auf einem Server, auf dem SQL Server ausgeführt wird, das SQL-Skript aus Anhang A aus. Dieses Skript erstellt eine Beispieldatenbank mit dem Namen GSQLDEMO. Das Objektmodell für die erstellte Datenbank sieht wie in folgender Abbildung aus:
Objektmodell

Außerdem erstellen Sie einen Benutzer, den Sie für die Verbindung mit der Datenbank verwenden möchten. In dieser exemplarischen Vorgehensweise heißt der Benutzer „FABRIKAM\SQLUser“ und befindet sich in der Domäne.

Erstellen der ODBC-Verbindungsdatei

Der generische SQL-Connector verwendet ODBC für die Verbindung mit dem Remoteserver. Zunächst müssen Sie eine Datei mit den Informationen zur ODBC-Verbindung erstellen.

  1. Starten Sie das ODBC-Verwaltungshilfsprogramm auf Ihrem Server:
    Screenshot: Suchfeld mit eingegebenem O D B C
  2. Wählen Sie die Registerkarte Datei-DSN. Klicken Sie auf Hinzufügen....
    Screenshot des O D B C-Verwaltungsprogramms mit ausgewählter Registerkarte
  3. Der sofort einsatzbereite Treiber funktioniert einwandfrei, also wählen Sie ihn aus, und klicken Sie auf Weiter>.
    Screenshot: Treiberoptionen für die neue Datenquelle
  4. Geben Sie der Datei einen Namen, z.B. GenericSQL.
    Screenshot: Beispiel eines neuen Dateinamens, der in das Feld eingegeben wurde, und der Schaltfläche
  5. Klicken Sie auf Fertig stellen.
    Screenshot der neuen Datenquellendetails und der Schaltfläche
  6. Konfigurieren Sie jetzt die Verbindung. Geben Sie eine aussagekräftige Beschreibung der Datenquelle ein, und geben Sie den Namen des Servers mit SQL Server an.
    Screenshot des Konfigurations-Assistenten mit einer Beispielbeschreibung und einem Servernamen sowie einer Schaltfläche Weiter
  7. Wählen Sie die Art der Authentifizierung bei SQL aus. In diesem Fall wird die Windows-Authentifizierung verwendet.
    Screenshot: Authentifizierungsschritt mit ausgewählter option
  8. Geben Sie den Namen der Beispieldatenbank GSQLDEMOan.
    Screenshot des in das Datenbankfeld eingegebenen Datenbanknamens und der Schaltfläche
  9. Behalten Sie die Standardeinstellungen auf diesem Bildschirm bei. Klicken Sie auf Fertig stellen.
    Screenshot: Standardeinstellungen im letzten Schritt des Assistenten und Schaltfläche Fertig stellen
  10. Um zu überprüfen, ob alles wie erwartet funktioniert, klicken Sie auf Datenquelle testen.
    Screenshot: Konfigurationsdetails der neuen O D B C-Datenquelle und der Schaltfläche Datenquelle testen
  11. Überprüfen Sie, ob der Test erfolgreich war.
    Screenshot mit den Testergebnissen und einer O K-Schaltfläche
  12. Die ODBC-Konfigurationsdatei sollte jetzt unter „Datei-DSN“ angezeigt werden.
    Screenshot des O D B C-Verwaltungsprogramms mit ausgewählter Registerkarte

Jetzt verfügen Sie über die benötigte Datei und können mit dem Erstellen des Connectors beginnen.

Erstellen des generischen SQL-Connectors

  1. In der Benutzeroberfläche von Synchronization Service Manager wählen Sie Connectors und Erstellen aus. Wählen Sie Generisch, SQL (Microsoft) aus, und geben Sie dem Connector einen aussagekräftigen Namen.
    Screenshot: Assistent zum Erstellen eines Connectors mit ausgewähltem Connector und Schaltfläche Weiter
  2. Suchen Sie die DSN-Datei, die Sie im vorherigen Abschnitt erstellt haben, und laden Sie sie auf den Server hoch. Geben Sie die Anmeldeinformationen für die Verbindung mit der Datenbank an.
    Screenshot: D S N-Datei mit eingegebenen Anmeldeinformationen und der Schaltfläche
  3. Der Einfachheit halber gehen wir in dieser exemplarischen Vorgehensweise davon aus, dass es zwei Objekttypen gibt: User und Group. Screenshot: Zwei Objekttypen, die in das Feld Liste mit festen Werten eingegeben wurden, und die Schaltfläche
  4. Der Connector soll die Attribute anhand der Tabelle selbst erkennen. Da Users ein reserviertes Wort in SQL ist, muss es in eckigen Klammern ([]) angegeben werden.
    Screenshot: Attributerkennungswert der Tabelle und des Tabellenwerts von Benutzern und schaltfläche
  5. Jetzt werden das Ankerattribut und das DN-Attribut definiert. Für Usersverwenden wir die Kombination der beiden Attribute „username“ und „EmployeeID“. Für Groupverwenden wir „GroupName“ (nicht realistisch in der realen Welt, aber für diese exemplarische Vorgehensweise geeignet). Screenshot: Benutzername, Mitarbeiter-I D und Gruppenname mit der Schaltfläche
  6. Nicht alle Attributtypen können in einer SQL-Datenbank erkannt werden. Dies gilt insbesondere für den Verweisattributtyp. Für den Objekttyp „Group“ müssen wir „OwnerID“ und „MemberID“ in „Verweis“ ändern.
    Screenshot der aktualisierten Felder
  7. Für die Attribute, die wir im vorherigen Schritt als Verweisattribute ausgewählt haben, muss der Objekttyp angegeben werden, für den die Werte einen Verweis darstellen. In unserem Fall ist dies der Objekttyp „User“.
    Screenshot des ausgewählten Objekttyps und der Schaltfläche
  8. Wählen Sie auf der Seite mit den globalen Parametern Wasserzeichen als Deltastrategie aus. Geben Sie das Format von Datum/Uhrzeit als JJJJ-MM-TT HH:MM:SSein. Screenshot mit den Feldern für die Deltastrategie, dem Datums- und Uhrzeitformat und der Schaltfläche Weiter
  9. Wählen Sie auf der Seite Partitionen und Hierarchien konfigurieren beide Objekttypen aus. Screenshot, der die beiden ausgewählten Objekttypen und die Schaltfläche
  10. Wählen Sie unter Objekttypen auswählen und Attribute auswählen beide Objekttypen und alle Attribute aus. Klicken Sie auf der Seite Anker konfigurieren auf Fertig stellen.

Erstellen von Ausführungsprofilen

  1. Wählen Sie auf der Synchronization Service Manager-Benutzeroberfläche Connectors und Ausführungsprofile konfigurieren aus. Klicken Sie auf Neues Profil. Wir beginnen mit Vollständiger Import.
    Screenshot: Assistent zum Konfigurieren von Ausführungsprofilen mit eingabe des vollständigen Imports im Feld Name und Schaltfläche Weiter
  2. Wählen Sie den Typ Vollständiger Import (nur Bereitstellung)aus.
    Screenshot: ausgewählter Typ und Schaltfläche
  3. Wählen Sie die Partition OBJECT=Useraus.
    Screenshot: Ausgewählte Partition und Schaltfläche
  4. Wählen Sie Tabelle aus, und geben Sie [USERS] ein. Führen Sie einen Bildlauf zum Abschnitt für den Objekttyp mit mehreren Werten aus, und geben Sie die Daten wie in der folgenden Abbildung ein. Wählen Sie Fertig stellen , um den Schritt zu speichern.
    Screenshot: Operationsmethode Tabelle ausgewählt und Benutzer im Tabellenfeld
    Screenshot: Werte für mehrwertige Objekttypen, die für Name und Joinbedingung eingegeben wurden.
  5. Wählen Sie Neuer Schritt aus. Wählen Sie dieses Mal OBJECT=Groupaus. Verwenden Sie auf der letzten Seite die Konfiguration wie in der folgenden Abbildung. Klicken Sie auf Fertig stellen.
    Screenshot: Operationsmethode Tabelle ausgewählt und Gruppe im Tabellenfeld
    Screenshot: Objekttypwerte, die für den Namen der Tabelle und die Joinbedingung eingegeben wurden.
  6. Optional: Sie können bei Bedarf zusätzliche Ausführungsprofile konfigurieren. In dieser exemplarischen Vorgehensweise wird nur der vollständige Import verwendet.
  7. Klicken Sie auf OK , um das Ändern von Ausführungsprofilen abzuschließen.

Hinzufügen einiger Testdaten und Testen des Imports

Geben Sie einige Testdaten in die Beispieldatenbank ein. Wenn Sie bereit sind, wählen Sie Ausführen und Vollständiger Import.

Hier sehen Sie einen Benutzer mit zwei Telefonnummern und eine Gruppe mit einigen Mitgliedern.
Screenshot der Daten, die einen Benutzer mit zwei Telefonnummern zeigen.
Screenshot der Daten, die eine Gruppe mit einigen Mitgliedern zeigen.

Anhang A

SQL-Skript zum Erstellen der Beispieldatenbank

---Creating the Database---------
Create Database GSQLDEMO
Go
-------Using the Database-----------
Use [GSQLDEMO]
Go
-------------------------------------
USE [GSQLDEMO]
GO
/****** Object:  Table [dbo].[GroupMembers]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GroupMembers](
    [MemberID] [int] NOT NULL,
    [Group_ID] [int] NOT NULL
) ON [PRIMARY]

GO
/****** Object:  Table [dbo].[GROUPS]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GROUPS](
    [GroupID] [int] NOT NULL,
    [GROUPNAME] [nvarchar](200) NOT NULL,
    [DESCRIPTION] [nvarchar](200) NULL,
    [WATERMARK] [datetime] NULL,
    [OwnerID] [int] NULL,
PRIMARY KEY CLUSTERED
(
    [GroupID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
/****** Object:  Table [dbo].[USERPHONE]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[USERPHONE](
    [USER_ID] [int] NULL,
    [Phone] [varchar](20) NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[USERS]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[USERS](
    [USERID] [int] NOT NULL,
    [USERNAME] [nvarchar](200) NOT NULL,
    [FirstName] [nvarchar](100) NULL,
    [LastName] [nvarchar](100) NULL,
    [DisplayName] [nvarchar](100) NULL,
    [ACCOUNTDISABLED] [bit] NULL,
    [EMPLOYEEID] [int] NOT NULL,
    [WATERMARK] [datetime] NULL,
PRIMARY KEY CLUSTERED
(
    [USERID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[GroupMembers]  WITH CHECK ADD  CONSTRAINT [FK_GroupMembers_GROUPS] FOREIGN KEY([Group_ID])
REFERENCES [dbo].[GROUPS] ([GroupID])
GO
ALTER TABLE [dbo].[GroupMembers] CHECK CONSTRAINT [FK_GroupMembers_GROUPS]
GO
ALTER TABLE [dbo].[GroupMembers]  WITH CHECK ADD  CONSTRAINT [FK_GroupMembers_USERS] FOREIGN KEY([MemberID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[GroupMembers] CHECK CONSTRAINT [FK_GroupMembers_USERS]
GO
ALTER TABLE [dbo].[GROUPS]  WITH CHECK ADD  CONSTRAINT [FK_GROUPS_USERS] FOREIGN KEY([OwnerID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[GROUPS] CHECK CONSTRAINT [FK_GROUPS_USERS]
GO
ALTER TABLE [dbo].[USERPHONE]  WITH CHECK ADD  CONSTRAINT [FK_USERPHONE_USER] FOREIGN KEY([USER_ID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[USERPHONE] CHECK CONSTRAINT [FK_USERPHONE_USER]
GO