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:
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.
- Start het ODBC-beheerprogramma op uw server:
- Selecteer het tabblad Bestand-DSN. Klik op Toevoegen....
- Het out-of-box stuurprogramma werkt prima, dus selecteer het en klik op Volgende>.
- Geef het bestand een naam, zoals GenericSQL.
- Klik op Voltooien.
- 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.
- Selecteer hoe u wilt verifiëren met SQL. In dit geval gebruiken we Windows-verificatie.
- Geef de naam op van de voorbeelddatabase , GSQLDEMO.
- Houd alles standaard op dit scherm. Klik op Voltooien.
- Als u wilt controleren of alles werkt zoals verwacht, klikt u op Gegevensbron testen.
- Controleer of de test is geslaagd.
- Het ODBC-configuratiebestand moet nu zichtbaar zijn in bestands-DSN.
We hebben nu het bestand dat we nodig hebben en kunnen beginnen met het maken van de connector.
De algemene SQL-connector maken
- Selecteer connectors en maken in de gebruikersinterface van de synchronisatie Service Manager. Selecteer Generic SQL (Microsoft) en geef deze een beschrijvende naam.
- 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.
- In dit scenario maken we het ons gemakkelijk en zeggen we dat er twee objecttypen zijn: Gebruiker en Groep.
- 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].
- 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).
- 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.
- 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.
- Selecteer op de pagina Globale parameters de optie Watermerk als deltastrategie. Typ ook in de datum-/tijdnotatie jjjj-MM-dd UU:mm:ss.
- Selecteer beide objecttypen op de pagina Partities en hiërarchieën configureren .
- Selecteer in Objecttypen selecteren en Kenmerken selecteren zowel objecttypen als alle kenmerken. Klik op de pagina Ankers configureren op Voltooien.
Uitvoeringsprofielen maken
- Selecteer connectors in de gebruikersinterface van de synchronisatie Service Manager en configureer uitvoeringsprofielen. Klik op Nieuw profiel. We beginnen met Volledige import.
- Selecteer het type Volledig importeren (alleen fase).
- Selecteer de partitie OBJECT=Gebruiker.
- 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.
- Selecteer Nieuwe stap. Selecteer deze keer OBJECT=Groep. Gebruik op de laatste pagina de configuratie zoals in de volgende afbeelding. Klik op Voltooien.
- Optioneel: Als u wilt, kunt u extra uitvoeringsprofielen configureren. Voor dit scenario wordt alleen de volledige import gebruikt.
- 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.
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