Instrukcja krok po kroku dotycząca ogólnego łącznika SQL
Ten temat jest przewodnikiem krok po kroku. Tworzy prostą przykładową bazę danych HR i używa jej do importowania niektórych użytkowników i ich członkostwa w grupach.
Uwaga
Microsoft Entra ID udostępnia teraz uproszczone rozwiązanie oparte na agencie na potrzeby aprowizowania użytkowników w bazie danych SQL, bez konieczności wdrażania synchronizacji programu MIM. Zalecamy użycie jej na potrzeby aprowizacji użytkowników wychodzących. Dowiedz się więcej.
Przygotowywanie przykładowej bazy danych
Na serwerze z systemem SQL Server uruchom skrypt SQL znajdujący się w dodatku A. Ten skrypt tworzy przykładową bazę danych o nazwie GSQLDEMO. Model obiektów utworzonej bazy danych wygląda następująco:
Utwórz również użytkownika, którego chcesz użyć do nawiązania połączenia z bazą danych. W tym przewodniku użytkownik jest nazywany FABRIKAM\SQLUser i znajduje się w domenie.
Tworzenie pliku połączenia ODBC
Ogólny łącznik SQL używa odBC do nawiązywania połączenia z serwerem zdalnym. Najpierw musimy utworzyć plik z informacjami o połączeniu ODBC.
- Uruchom narzędzie do zarządzania ODBC na serwerze:
- Wybierz kartę Plik DSN. Kliknij przycisk Dodaj....
- Sterownik out-of-box działa prawidłowo, więc wybierz go i kliknij przycisk Dalej>.
- Nadaj plikowi nazwę, taką jak GenericSQL.
- Kliknij przycisk Finish (Zakończ).
- Czas konfigurowania połączenia. Podaj dobry opis źródła danych i podaj nazwę serwera z systemem SQL Server.
- Wybierz sposób uwierzytelniania za pomocą języka SQL. W tym przypadku używamy uwierzytelniania systemu Windows.
- Podaj nazwę przykładowej bazy danych GSQLDEMO.
- Zachowaj wartość domyślną na tym ekranie. Kliknij przycisk Finish (Zakończ).
- Aby sprawdzić, czy wszystko działa zgodnie z oczekiwaniami, kliknij pozycję Testuj źródło danych.
- Upewnij się, że test zakończył się pomyślnie.
- Plik konfiguracji ODBC powinien być teraz widoczny w pliku DSN.
Mamy teraz potrzebny plik i możemy rozpocząć tworzenie łącznika.
Tworzenie ogólnego łącznika SQL
- W interfejsie użytkownika Service Manager synchronizacji wybierz pozycję Łączniki i Utwórz. Wybierz pozycję Generic SQL (Microsoft) i nadaj jej opisową nazwę.
- Znajdź plik DSN utworzony w poprzedniej sekcji i przekaż go na serwer. Podaj poświadczenia, aby nawiązać połączenie z bazą danych.
- W tym przewodniku ułatwiamy nam i mówimy, że istnieją dwa typy obiektów: User (Użytkownik) i Group (Grupa).
- Aby znaleźć atrybuty, chcemy, aby łącznik wykrył te atrybuty, patrząc na samą tabelę. Ponieważ użytkownik jest słowem zastrzeżonym w języku SQL, musimy podać go w nawiasach kwadratowych [ ].
- Czas definiowania atrybutu kotwicy i atrybutu DN. W przypadku użytkowników używamy kombinacji dwóch atrybutów username i EmployeeID. W przypadku grupy używamy wartości GroupName (nie realistycznej w rzeczywistym życiu, ale w tym przewodniku działa).
- Nie wszystkie typy atrybutów można wykryć w bazie danych SQL. Typ atrybutu odwołania w szczególności nie może. W przypadku typu obiektu grupy musimy zmienić wartości OwnerID i MemberID na odwołanie.
- Atrybuty wybrane jako atrybuty odwołania w poprzednim kroku wymagają, aby typ obiektu te wartości były odwołaniem. W naszym przypadku typ obiektu Użytkownik.
- Na stronie Parametry globalne wybierz pozycję Znak wodny jako strategię różnicy. Wpisz również format daty/godziny rrrr-MM-dd HH:mm:ss.
- Na stronie Konfigurowanie partycji i hierarchii wybierz oba typy obiektów.
- Na wybieranie typów obiektów i wybierz atrybuty, wybierz zarówno typy obiektów, jak i wszystkie atrybuty. Na stronie Konfigurowanie kotwic kliknij przycisk Zakończ.
Tworzenie profilów uruchamiania
- W interfejsie użytkownika Service Manager synchronizacji wybierz pozycję Łączniki i skonfiguruj profile uruchamiania. Kliknij pozycję Nowy profil. Zaczynamy od pełnego importu.
- Wybierz typ Pełny import (tylko etap).
- Wybierz partycję OBJECT=User.
- Wybierz pozycję Tabela i wpisz [USERS]. Przewiń w dół do sekcji typu obiektu wielowartego i wprowadź dane, jak na poniższej ilustracji. Wybierz pozycję Zakończ , aby zapisać krok.
- Wybierz pozycję Nowy krok. Tym razem wybierz pozycję OBJECT=Group. Na ostatniej stronie użyj konfiguracji, jak na poniższej ilustracji. Kliknij przycisk Finish (Zakończ).
- Opcjonalnie: Jeśli chcesz, możesz skonfigurować dodatkowe profile uruchamiania. W tym przewodniku jest używany tylko pełny import.
- Kliknij przycisk OK , aby zakończyć zmienianie profilów uruchamiania.
Dodawanie danych testowych i testowanie importu
Wypełnij dane testowe w przykładowej bazie danych. Gdy wszystko będzie gotowe, wybierz pozycję Uruchom i Pełny import.
Oto użytkownik z dwoma numerami telefonów i grupą z niektórymi członkami.
dodatek A
Skrypt SQL umożliwiający utworzenie przykładowej bazy danych
---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