Delen via


Algemene SQL Connector, stap voor stap

Dit onderwerp is een stapsgewijze handleiding. Er wordt een eenvoudige HR-voorbeelddatabase gemaakt en deze gebruikt voor het importeren van sommige gebruikers en hun groepslidmaatschap.

Notitie

Microsoft Entra-id biedt nu een lichtgewicht oplossing op basis van een agent voor het inrichten van gebruikers in een SQL-database, zonder dat er een MIM-synchronisatie-implementatie nodig is. U wordt aangeraden deze te gebruiken voor het inrichten van uitgaande gebruikers. Meer informatie.

De voorbeelddatabase voorbereiden

Voer op een server waarop SQL Server wordt uitgevoerd het SQL-script uit dat u in bijlage A vindt. Met dit script maakt u een voorbeelddatabase met de naam GSQLDEMO. Het objectmodel voor de gemaakte database ziet er als volgt uit:
Objectmodel

Maak ook een gebruiker die u wilt gebruiken om verbinding te maken met de database. In dit scenario heet de gebruiker FABRIKAM\SQLUser en bevindt zich in het domein.

Het ODBC-verbindingsbestand maken

De algemene SQL-connector maakt gebruik van ODBC om verbinding te maken met de externe server. Eerst moeten we een bestand maken met de ODBC-verbindingsgegevens.

  1. Start het ODBC-beheerprogramma op uw server:
    Schermopname van een zoekveld met O D B C ingevoerd.
  2. Selecteer het tabblad Bestand-DSN. Klik op Toevoegen....
    Schermopname van het O D B C-beheerhulpprogramma met het tabblad Bestand D S N geselecteerd.
  3. Het out-of-box stuurprogramma werkt prima, dus selecteer het en klik op Volgende>.
    Schermopname van de stuurprogrammaopties voor de nieuwe gegevensbron.
  4. Geef het bestand een naam, zoals GenericSQL.
    Schermopname van een voorbeeld van een nieuwe bestandsnaam die is ingevoerd in het veld en een knop Volgende.
  5. Klik op Voltooien.
    Schermopname van de details van de nieuwe gegevensbron en een knop Voltooien.
  6. Tijd om de verbinding te configureren. Geef de gegevensbron een goede beschrijving en geef de naam op van de server waarop SQL Server wordt uitgevoerd.
    Schermopname van de configuratiewizard met een voorbeeldbeschrijving en servernaam en een knop Volgende.
  7. Selecteer hoe u wilt verifiëren met SQL. In dit geval gebruiken we Windows-verificatie.
    Schermopname van de verificatiestap met de optie geïntegreerde Windows-verificatie geselecteerd en een knop Volgende.
  8. Geef de naam op van de voorbeelddatabase , GSQLDEMO.
    Schermopname van de databasenaam die is ingevoerd in het databaseveld en de knop Volgende.
  9. Houd alles standaard op dit scherm. Klik op Voltooien.
    Schermopname van de standaardinstellingen in de laatste stap van de wizard en de knop Voltooien.
  10. Als u wilt controleren of alles werkt zoals verwacht, klikt u op Gegevensbron testen.
    Schermopname van de configuratiedetails van de nieuwe O D B C-gegevensbron en een knop Gegevensbron testen.
  11. Controleer of de test is geslaagd.
    Schermopname van de testresultaten en een O K-knop.
  12. Het ODBC-configuratiebestand moet nu zichtbaar zijn in bestands-DSN.
    Schermopname van het O D B C-beheerhulpprogramma met het tabblad Bestand D S N geselecteerd en het nieuwe O D B C-configuratiebestand weergegeven.

We hebben nu het bestand dat we nodig hebben en kunnen beginnen met het maken van de connector.

De algemene SQL-connector maken

  1. Selecteer connectors en maken in de gebruikersinterface van de synchronisatie Service Manager. Selecteer Generic SQL (Microsoft) en geef deze een beschrijvende naam.
    Schermopname van de wizard Connector maken met de connector geselecteerd en de knop Volgende.
  2. Zoek het DSN-bestand dat u in de vorige sectie hebt gemaakt en upload het naar de server. Geef de referenties op om verbinding te maken met de database.
    Schermopname van het D S N-bestand met ingevoerde referenties en een knop Volgende.
  3. In dit scenario maken we het ons gemakkelijk en zeggen we dat er twee objecttypen zijn: Gebruiker en Groep. Schermopname van de twee objecttypen die zijn ingevoerd in het lijstveld met vaste waarden en een knop Volgende.
  4. Om de kenmerken te vinden, willen we dat de connector deze kenmerken detecteert door naar de tabel zelf te kijken. Omdat Gebruikers een gereserveerd woord is in SQL, moeten we het tussen vierkante haken [ opgeven].
    Schermopname met kenmerkdetectiewaarde van de tabel- en tabelwaarde van gebruikers en een knop Volgende.
  5. Tijd om het ankerkenmerk en het DN-kenmerk te definiëren. Voor Gebruikers gebruiken we de combinatie van de twee kenmerken gebruikersnaam en EmployeeID. Voor groep gebruiken we GroupName (niet realistisch in de praktijk, maar voor dit scenario werkt het wel). Schermopname met gebruikersnaam, id van werknemer en groepsnaam, met de knop Volgende.
  6. Niet alle kenmerktypen kunnen worden gedetecteerd in een SQL-database. Het type verwijzingskenmerk in het bijzonder niet. Voor het groepsobjecttype moeten we de OwnerID en MemberID wijzigen waarnaar wordt verwezen.
    Schermopname met de bijgewerkte velden eigenaar-id en lid-id en een knop Volgende.
  7. De kenmerken die we in de vorige stap als verwijzingskenmerken hebben geselecteerd, vereisen het objecttype waarnaar deze waarden verwijzen. In ons geval het objecttype Gebruiker.
    Schermopname met het geselecteerde objecttype en een knop Volgende.
  8. Selecteer op de pagina Globale parameters de optie Watermerk als deltastrategie. Typ ook in de datum-/tijdnotatie jjjj-MM-dd UU:mm:ss. Schermopname van de velden voor de deltastrategie en de datum- en tijdnotatie, en een knop Volgende.
  9. Selecteer beide objecttypen op de pagina Partities en hiërarchieën configureren . Schermopname met beide objecttypen geselecteerd en de knop Volgende.
  10. Selecteer in Objecttypen selecteren en Kenmerken selecteren zowel objecttypen als alle kenmerken. Klik op de pagina Ankers configureren op Voltooien.

Uitvoeringsprofielen maken

  1. Selecteer connectors in de gebruikersinterface van de synchronisatie Service Manager en configureer uitvoeringsprofielen. Klik op Nieuw profiel. We beginnen met Volledige import.
    Schermopname van de wizard Run Profile configureren met Volledig importeren ingevoerd in het veld Naam en een knop Volgende.
  2. Selecteer het type Volledig importeren (alleen fase).
    Schermopname met het geselecteerde type en een knop Volgende.
  3. Selecteer de partitie OBJECT=Gebruiker.
    Schermopname met de geselecteerde partitie en een knop Volgende.
  4. Selecteer Tabel en typ [GEBRUIKERS].. Schuif omlaag naar de sectie objecttype met meerdere waarden en voer de gegevens in zoals in de volgende afbeelding. Selecteer Voltooien om de stap op te slaan.
    Schermopname met de bewerkingsmethode Tabel geselecteerd en gebruikers in het tabelveld.
    Schermopname met waarden voor het objecttype met meerdere waarden die zijn ingevoerd voor naam en joinvoorwaarde.
  5. Selecteer Nieuwe stap. Selecteer deze keer OBJECT=Groep. Gebruik op de laatste pagina de configuratie zoals in de volgende afbeelding. Klik op Voltooien.
    Schermopname van de bewerkingsmethode Tabel geselecteerd en groepeer in het tabelveld.
    Schermopname van objecttypewaarden die zijn ingevoerd voor de naam van de tabel en joinvoorwaarde.
  6. Optioneel: Als u wilt, kunt u extra uitvoeringsprofielen configureren. Voor dit scenario wordt alleen de volledige import gebruikt.
  7. Klik op OK om het wijzigen van uitvoeringsprofielen te voltooien.

Voeg enkele testgegevens toe en test de import

Vul enkele testgegevens in uw voorbeelddatabase in. Wanneer u klaar bent, selecteert u Uitvoeren en Volledige import.

Hier ziet u een gebruiker met twee telefoonnummers en een groep met enkele leden.
Schermopname van gegevens met een gebruiker met twee telefoonnummers.
Schermopname van gegevens met een groep met enkele leden.

Bijlage A

SQL-script voor het maken van de voorbeelddatabase

---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