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:
Model obiektu

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.

  1. Uruchom narzędzie do zarządzania ODBC na serwerze:
    Zrzut ekranu przedstawiający pole wyszukiwania z wprowadzonym polem O D B C.
  2. Wybierz kartę Plik DSN. Kliknij przycisk Dodaj....
    Zrzut ekranu przedstawiający narzędzie do zarządzania O D B C z wybraną kartą Plik D N.
  3. Sterownik out-of-box działa prawidłowo, więc wybierz go i kliknij przycisk Dalej>.
    Zrzut ekranu przedstawiający opcje sterowników dla nowego źródła danych.
  4. Nadaj plikowi nazwę, taką jak GenericSQL.
    Zrzut ekranu przedstawiający przykładową nową nazwę pliku wprowadzoną w polu i przycisk Dalej.
  5. Kliknij przycisk Finish (Zakończ).
    Zrzut ekranu przedstawiający szczegóły nowego źródła danych i przycisk Zakończ.
  6. Czas konfigurowania połączenia. Podaj dobry opis źródła danych i podaj nazwę serwera z systemem SQL Server.
    Zrzut ekranu przedstawiający kreatora konfiguracji z przykładowym opisem i nazwą serwera oraz przyciskiem Dalej.
  7. Wybierz sposób uwierzytelniania za pomocą języka SQL. W tym przypadku używamy uwierzytelniania systemu Windows.
    Zrzut ekranu przedstawiający krok uwierzytelniania z wybraną opcją zintegrowanego uwierzytelniania systemu Windows i przyciskiem Dalej.
  8. Podaj nazwę przykładowej bazy danych GSQLDEMO.
    Zrzut ekranu przedstawiający nazwę bazy danych wprowadzoną w polu bazy danych i przycisk Dalej.
  9. Zachowaj wartość domyślną na tym ekranie. Kliknij przycisk Finish (Zakończ).
    Zrzut ekranu przedstawiający ustawienia domyślne w ostatnim kroku kreatora i przycisk Zakończ.
  10. Aby sprawdzić, czy wszystko działa zgodnie z oczekiwaniami, kliknij pozycję Testuj źródło danych.
    Zrzut ekranu przedstawiający szczegóły konfiguracji nowego źródła danych O D B C i przycisk Testuj źródło danych.
  11. Upewnij się, że test zakończył się pomyślnie.
    Zrzut ekranu przedstawiający wyniki testu i przycisk O K.
  12. Plik konfiguracji ODBC powinien być teraz widoczny w pliku DSN.
    Zrzut ekranu przedstawiający narzędzie do zarządzania O D B C z wybraną kartą Plik D N i nowym plikiem konfiguracji O D B C na liście.

Mamy teraz potrzebny plik i możemy rozpocząć tworzenie łącznika.

Tworzenie ogólnego łącznika SQL

  1. W interfejsie użytkownika Service Manager synchronizacji wybierz pozycję Łączniki i Utwórz. Wybierz pozycję Generic SQL (Microsoft) i nadaj jej opisową nazwę.
    Zrzut ekranu przedstawiający kreatora tworzenia łącznika z wybranym łącznikiem i przyciskiem Dalej.
  2. Znajdź plik DSN utworzony w poprzedniej sekcji i przekaż go na serwer. Podaj poświadczenia, aby nawiązać połączenie z bazą danych.
    Zrzut ekranu przedstawiający plik D S N z wprowadzonymi poświadczeniami i przyciskiem Dalej.
  3. W tym przewodniku ułatwiamy nam i mówimy, że istnieją dwa typy obiektów: User (Użytkownik) i Group (Grupa). Zrzut ekranu przedstawiający dwa typy obiektów wprowadzone w polu listy stałej wartości i przycisk Dalej.
  4. 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 [ ].
    Zrzut ekranu przedstawiający wartość wykrywania atrybutów wartości tabeli i tabeli użytkowników oraz przycisk Dalej.
  5. 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). Zrzut ekranu przedstawiający nazwę użytkownika, nazwę ID pracownika i nazwę grupy z przyciskiem Dalej.
  6. 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.
    Zrzut ekranu przedstawiający zaktualizowane pola identyfikatora właściciela i identyfikatora członka oraz przycisk Dalej.
  7. 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.
    Zrzut ekranu przedstawiający wybrany typ obiektu i przycisk Dalej.
  8. Na stronie Parametry globalne wybierz pozycję Znak wodny jako strategię różnicy. Wpisz również format daty/godziny rrrr-MM-dd HH:mm:ss. Zrzut ekranu przedstawiający pola strategii różnicowej oraz format daty i godziny oraz przycisk Dalej.
  9. Na stronie Konfigurowanie partycji i hierarchii wybierz oba typy obiektów. Zrzut ekranu przedstawiający wybrane typy obiektów i przycisk Dalej.
  10. 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

  1. W interfejsie użytkownika Service Manager synchronizacji wybierz pozycję Łączniki i skonfiguruj profile uruchamiania. Kliknij pozycję Nowy profil. Zaczynamy od pełnego importu.
    Zrzut ekranu przedstawiający Kreatora konfigurowania profilu uruchamiania z pełnym importem wprowadzonym w polu Nazwa i przycisk Dalej.
  2. Wybierz typ Pełny import (tylko etap).
    Zrzut ekranu przedstawiający wybrany typ i przycisk Dalej.
  3. Wybierz partycję OBJECT=User.
    Zrzut ekranu przedstawiający wybraną partycję i przycisk Dalej.
  4. 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.
    Zrzut ekranu przedstawiający wybraną metodę operacji Tabela i użytkowników w polu tabeli.
    Zrzut ekranu przedstawiający wielowarte wartości typu obiektu wprowadzone dla warunku nazwy i sprzężenia.
  5. 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).
    Zrzut ekranu przedstawiający wybraną metodę operacji Tabela i grupę w polu tabeli.
    Zrzut ekranu przedstawiający wartości typu obiektu wprowadzone dla nazwy tabeli i warunku sprzężenia.
  6. Opcjonalnie: Jeśli chcesz, możesz skonfigurować dodatkowe profile uruchamiania. W tym przewodniku jest używany tylko pełny import.
  7. 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.
Zrzut ekranu przedstawiający dane przedstawiające użytkownika z dwoma numerami telefonów.
Zrzut ekranu przedstawiający dane przedstawiające 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