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:
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.
- Starten Sie das ODBC-Verwaltungshilfsprogramm auf Ihrem Server:
- Wählen Sie die Registerkarte Datei-DSN. Klicken Sie auf Hinzufügen....
- Der sofort einsatzbereite Treiber funktioniert einwandfrei, also wählen Sie ihn aus, und klicken Sie auf Weiter>.
- Geben Sie der Datei einen Namen, z.B. GenericSQL.
- Klicken Sie auf Fertig stellen.
- 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.
- Wählen Sie die Art der Authentifizierung bei SQL aus. In diesem Fall wird die Windows-Authentifizierung verwendet.
- Geben Sie den Namen der Beispieldatenbank GSQLDEMOan.
- Behalten Sie die Standardeinstellungen auf diesem Bildschirm bei. Klicken Sie auf Fertig stellen.
- Um zu überprüfen, ob alles wie erwartet funktioniert, klicken Sie auf Datenquelle testen.
- Überprüfen Sie, ob der Test erfolgreich war.
- Die ODBC-Konfigurationsdatei sollte jetzt unter „Datei-DSN“ angezeigt werden.
Jetzt verfügen Sie über die benötigte Datei und können mit dem Erstellen des Connectors beginnen.
Erstellen des generischen SQL-Connectors
- 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.
- 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.
- Der Einfachheit halber gehen wir in dieser exemplarischen Vorgehensweise davon aus, dass es zwei Objekttypen gibt: User und Group.
- 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.
- 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).
- 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.
- 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“.
- 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.
- Wählen Sie auf der Seite Partitionen und Hierarchien konfigurieren beide Objekttypen aus.
- 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
- 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.
- Wählen Sie den Typ Vollständiger Import (nur Bereitstellung)aus.
- Wählen Sie die Partition OBJECT=Useraus.
- 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.
- 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.
- Optional: Sie können bei Bedarf zusätzliche Ausführungsprofile konfigurieren. In dieser exemplarischen Vorgehensweise wird nur der vollständige Import verwendet.
- 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.
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