Ogólne SQL techniczne łącznika

W tym artykule opisano ogólny SQL łącznika. Artykuł dotyczy następujących produktów:

  • Microsoft Identity Manager 2016 (MIM2016)
  • Forefront Identity Manager 2010 R2 (FIM2010R2)
    • Musi używać poprawki 4.1.3671.0 lub nowszej KB3092178.

W przypadku programu MIM2016 i FIM2010R2 łącznik jest dostępny do pobrania z Centrum pobierania Microsoft.

Aby zobaczyć, jak ten łącznik jest w akcji, zobacz artykuł SQL Generic SQL Connector step-by-step (Ogólny łącznik łącznika).

Omówienie ogólnego łącznika SQL danych

Ogólny łącznik SQL umożliwia integrację usługi synchronizacji z systemem bazy danych, który oferuje łączność ODBC.

Z perspektywy wysokiego poziomu następujące funkcje są obsługiwane przez bieżącą wersję łącznika:

Cecha Pomoc techniczna
Połączone źródło danych Łącznik jest obsługiwany we wszystkich 64-bitowych sterownikach ODBC*. Został on przetestowany przy użyciu następujących czynności:
  • Microsoft SQL Server & Usługi SQL Azure
  • IBM DB2 10.x
  • IBM DB2 9.x
  • Oracle 10 & 11g
  • Oracle 12c i 18c
  • MySQL 5.x
  • Scenariusze
  • Zarządzanie cyklem życia obiektu
  • Zarządzanie hasłami
  • Operacje
  • Importowanie pełne i importowanie różnicowe, eksportowanie
  • W przypadku eksportu: dodawanie, usuwanie, aktualizowanie i zastępowanie
  • Ustawianie hasła, zmienianie hasła
  • Schemat
  • Dynamiczne odnajdywanie obiektów i atrybutów
  • Uwaga

    *Połączenia ze źródłami danych, które nie zostały wymienione powyżej, np. PostgreSQL, są obecnie ograniczone do strategii importu i eksportu opartych na zapytaniach.

    Wymagania wstępne

    Przed użyciem łącznika upewnij się, że na serwerze synchronizacji są następujące elementy:

    • Microsoft .NET 4.5.2 Framework lub nowszy
    • 64-bitowe sterowniki klienta ODBC
    • Jeśli używasz łącznika do komunikowania się z programem Oracle 12c, wymaga to programu Oracle Instant Client 12.2.0.1 lub nowszego z pakietem ODBC.
    • Jeśli używasz łącznika do komunikowania się z programem Oracle 18c, wymaga to programu Oracle Instant Client 18.3.0.0 lub nowszego z pakietem ODBC i ustawienia zmiennej systemowej NLS_LANG na obsługę znaków UTF8.

    Wdrożenie tego łącznika może wymagać zmian w konfiguracji bazy danych, a także zmian konfiguracji MIM. W przypadku wdrożeń obejmujących integrację usługi MIM z serwerem bazy danych innej firmy w środowisku produkcyjnym zalecamy, aby klienci współpracowali z dostawcą bazy danych lub partnerem wdrażania, aby uzyskać pomoc, wskazówki i pomoc techniczną dla tej integracji.

    Uprawnienia w połączonym źródle danych

    Aby utworzyć lub wykonać dowolne z obsługiwanych zadań w ogólnym SQL łączniku, musisz mieć:

    • db_datareader
    • db_datawriter

    Porty i protokoły

    Aby uzyskać informacje na temat portów wymaganych do działania sterownika ODBC, zapoznaj się z dokumentacją dostawcy bazy danych.

    Tworzenie nowego łącznika

    Aby utworzyć ogólny łącznik SQL, w usłudze synchronizacji wybierz pozycję Agent zarządzania i Utwórz. Wybierz pozycję Łącznik SQL (Microsoft).

    CreateConnector, strona 1

    Łączność

    Łącznik używa pliku DSN ODBC do łączności. Utwórz plik DSN przy użyciu źródeł danych ODBC dostępnych w menu Start w obszarze Narzędzia administracyjne. W narzędziu administracyjnym utwórz nazwę DSN pliku, aby można go było dostarczać do łącznika.

    CreateConnector, strona 2

    Ekran Łączność jest pierwszym krokiem podczas tworzenia nowego ogólnego łącznika SQL sieciowego. Najpierw należy podać następujące informacje:

    • Ścieżka pliku DSN
    • Authentication
      • Nazwa użytkownika
      • Hasło

    Baza danych powinna obsługiwać jedną z tych metod uwierzytelniania:

    • Windows uwierzytelniania:uwierzytelnianie bazy danych używa Windows poświadczeń użytkownika w celu zweryfikowania użytkownika. Określona nazwa użytkownika/hasło jest używane do uwierzytelniania w bazie danych. To konto wymaga uprawnień do bazy danych.
    • SQL uwierzytelniania:uwierzytelnianie bazy danych używa nazwy użytkownika/hasła zdefiniowanego na ekranie Łączność w celu nawiązania połączenia z bazą danych. Jeśli przechowujesz nazwę użytkownika/hasło w pliku DSN, pierwszeństwo mają poświadczenia podane na ekranie Łączność.
    • Azure SQL Database uwierzytelniania:aby uzyskać więcej informacji, zobacz Połączenie to SQL Database By Using Azure Active Directory Authentication (Używanie uwierzytelniania Azure Active Directory).

    Dn to Kotwica:jeśli wybierzesz tę opcję, nazwa wyróżniająka jest również używana jako atrybut zakotwiczenia. Można go używać w prostej implementacji, ale ma również następujące ograniczenie:

    • Łącznik obsługuje tylko jeden typ obiektu. W związku z tym wszystkie atrybuty odwołania mogą odwoływać się tylko do tego samego typu obiektu.

    Typ eksportu: Zastąp obiekt: podczas eksportowania, gdy tylko niektóre atrybuty uległy zmianie, eksportowany jest cały obiekt ze wszystkimi atrybutami i zastępuje istniejący obiekt.

    Schemat 1 (Wykrywanie typów obiektów)

    Na tej stronie skonfigurujesz sposób, w jaki łącznik znajdzie różne typy obiektów w bazie danych.

    Każdy typ obiektu jest prezentowany jako partycja i konfigurowany w dalszej jego konfiguracji na stronie Konfigurowanie partycji i hierarchii.

    obraz schema1a

    Metoda wykrywania typu obiektu:łącznik obsługuje te metody wykrywania typów obiektów.

    • Wartość stała:lista typów obiektów jest dostarczana z listą rozdzieloną przecinkami. Na przykład: User,Group,Department.
      obraz schema1b
    • Tabela/widok/proceduraskładowana: podaj nazwę tabeli/widoku/procedury składowanej, a następnie nazwę kolumny, która zawiera listę typów obiektów. Jeśli używasz procedury składowanej, podaj również jej parametry w formacie [Nazwa]:[Kierunek]:[Wartość]. Podaj każdy parametr w osobnym wierszu (użyj klawiszy Ctrl+Enter, aby uzyskać nowy wiersz).
      obraz schema1c
    • SQL Query(Zapytanie SQL): ta opcja umożliwia podanie zapytania SQL, które zwraca pojedynczą kolumnę z typami obiektów, na przykład . Zwracana kolumna musi być typu ciąg (varchar).

    Schemat 2 (Wykrywanie typów atrybutów)

    Na tej stronie skonfigurujesz sposób, w jaki będą wykrywane nazwy atrybutów i typy. Opcje konfiguracji są wyświetlane dla każdego typu obiektu wykrytego na poprzedniej stronie.

    obraz schema2a

    Metoda wykrywania typu atrybutu:łącznik obsługuje te metody wykrywania typów atrybutów przy każdym wykrytym typie obiektu na ekranie Schematu 1.

    • Tabela/widok/procedura składowana:podaj nazwę tabeli/widoku/procedury składowanej, która powinna być używana do znalezienia nazw atrybutów. Jeśli używasz procedury składowanej, podaj również jej parametry w formacie [Nazwa]:[Kierunek]:[Wartość]. Podaj każdy parametr w osobnym wierszu (użyj klawiszy Ctrl+Enter, aby uzyskać nowy wiersz). Aby wykryć nazwy atrybutów w atrybutach o wielu wartościach, podaj rozdzielaną przecinkami listę tabel lub widoków. Scenariusze wielowartościowe nie są obsługiwane, gdy tabela nadrzędna i podrzędna mają takie same nazwy kolumn.
    • SQL zapytania:ta opcja umożliwia podanie zapytania SQL, które zwraca pojedynczą kolumnę z nazwami atrybutów, na przykład . Zwracana kolumna musi być typu ciąg (varchar).

    Schemat 3 (definiowanie kotwicy i nazwy wyróżniającej)

    Ta strona umożliwia skonfigurowanie atrybutu zakotwiczenia i nazwy wyróżniającej dla każdego wykrytego typu obiektu. Możesz wybrać wiele atrybutów, aby kotwica jest unikatowa.

    obraz schema3a

    • Atrybuty wielosekwowe i logiczne nie są wyświetlane.

    • Tego samego atrybutu nie można użyć dla nazwy wyróżniającej i zakotwiczenia, chyba że na stronie Łączność wybrano opcję Kotwica.

    • Jeśli na stronie Łączność wybrano opcję Kotwica, ta strona wymaga tylko atrybutu DN. Ten atrybut będzie również używany jako atrybut zakotwiczenia.

      obraz schema3b

    Schemat 4 (Definiowanie typu atrybutu, odwołania i kierunku)

    Ta strona umożliwia skonfigurowanie typu atrybutu, takiego jak liczba całkowita, wartość binarna lub wartość logiczna, oraz kierunku dla każdego atrybutu. Zostaną wyświetlone wszystkie atrybuty ze schematu strony 2, w tym atrybuty o wielu wartościach.

    obraz schema4a

    • DataType:służy do mapowania typu atrybutu na typy znane przez aparat synchronizacji. Domyślnie jest to użycie tego samego typu, który został wykryty w schemacie SQL, ale właściwości DateTime i Reference nie są łatwe do wykrycia. W tym celu należy określić wartość DateTime lub Reference.
    • Kierunek:możesz ustawić kierunek atrybutu na Import, Export lub ImportExport. Wartość domyślna to ImportExport.

    obraz schema4b

    Uwagi:

    • Jeśli łącznik nie wykrywa typu atrybutu, używa typu danych Ciąg.
    • Tabele zagnieżdżone można traktować jako jedno columnowe tabele bazy danych. Oracle przechowuje wiersze zagnieżdżonych tabel w nieokreślonej kolejności. Jednak podczas pobierania zagnieżdżonych tabel do zmiennej PL/SQL wiersze mają kolejne indeksy dolny rozpoczynające się od 1. Daje to dostęp podobny do tablicy do poszczególnych wierszy.
    • VarRYS nie są obsługiwane w łączniku.

    Schemat 5 (Definiowanie partycji dla atrybutów odwołania)

    Na tej stronie skonfigurujesz dla wszystkich atrybutów odwołania, do których odwołuje się atrybut (typ obiektu).

    obraz schema5

    Jeśli używasz nazwy wyróżniającej to kotwica, musisz użyć tego samego typu obiektu, do jakiego się odwołujesz. Nie można odwoływać się do innego typu obiektu.

    Uwaga

    Począwszy od aktualizacji z marca 2017 r., dostępna jest teraz opcja "*". Jeśli ta opcja zostanie wybrana, zostaną zaimportowane wszystkie możliwe typy elementów członkowskich.

    obraz globalparameters3

    Ważne

    Od maja 2017 r. opcja "*" (dowolna opcja) została zmieniona w celu obsługi przepływu importowania i eksportowania. Jeśli chcesz użyć tej opcji, wielosekwowa tabela/widok powinna mieć atrybut zawierający typ obiektu.

    wielowartościowa dowolna opcja przed obrazem


    Jeśli wybrano wartość "*", należy również określić nazwę kolumny z typem obiektu.

    Po zaimportowaniu zostanie wyświetlony obraz podobny do poniższego:

    obraz globalparameters31

    Parametry globalne

    Strona Parametry globalne służy do konfigurowania importu różnicowego, formatu daty/czasu i metody hasła.

    obraz globalparameters1

    Ogólny łącznik SQL obsługuje następujące metody importowania zmian:

    • Wyzwalacz:zobacz Generowanie widoków różnicowych przy użyciu wyzwalaczy.
    • Znakwodny: ogólne podejście, które może być używane z dowolną bazą danych. Zapytanie limitu jest wstępnie wypełniane na podstawie dostawcy bazy danych. Kolumna limitu musi znajdować się w każdej używanej tabeli/widoku. Ta kolumna musi śledzić wstawianie i aktualizacje tabel jako i tabel zależnych (wielo valued lub child). Zegary między usługą synchronizacji a serwerem bazy danych muszą być zsynchronizowane. W innym przypadku niektóre wpisy w imporcie różnicy mogą zostać pominięte.
      Ograniczenie:
      • Strategia limitu nie obsługuje usuniętych obiektów.
    • Migawka:(działa tylko z Microsoft SQL Server) Generowanie widoków różnicowych przy użyciu migawek
    • Change Tracking:(działa tylko z Microsoft SQL Server) Informacje Change Tracking
      Ograniczenia:
      • Atrybut & nazwy wyróżniającej kotwicy musi być częścią klucza podstawowego dla wybranego obiektu w tabeli.
      • SQL nie jest obsługiwane podczas importowania i eksportowania z Change Tracking.

    Dodatkowe parametry:określ strefę czasową serwera bazy danych wskazującą lokalizację serwera bazy danych. Ta wartość jest używana do obsługi różnych formatów atrybutów & daty i godziny.

    Łącznik zawsze przechowuje datę i datę/godzinę w formacie UTC. Aby można było poprawnie przekonwertować datę i godziny, należy określić strefę czasową serwera bazy danych i używany format. Format powinien być wyrażony w formacie .NET.

    Podczas eksportowania każdy atrybut daty i czasu musi zostać przekazany łącznikowi w formacie czasu UTC.

    obraz globalparameters2

    Konfiguracja hasła:łącznik zapewnia możliwości synchronizacji haseł oraz obsługuje ustawianie i zmienianie hasła.

    Łącznik udostępnia dwie metody obsługi synchronizacji haseł:

    • Procedura składowana:ta metoda wymaga dwóch procedur składowanych do obsługi ustawienia hasła zmiany. Wpisz wszystkie parametry, aby dodać i zmienić operację hasła w Ustaw hasło SP i Zmień hasło sp parametry odpowiednio, jak w poniższym przykładzie. obraz globalparameters32
    • Rozszerzenie hasła:ta metoda wymaga biblioteki DLL rozszerzenia hasła (należy podać nazwę biblioteki DLL rozszerzenia, która implementuje interfejs IMAExtensible2Password). Zestaw rozszerzenia hasła musi być umieszczony w folderze rozszerzenia, aby łącznik może załadować bibliotekę DLL w czasie wykonywania. obraz globalparameters4

    Należy również włączyć zarządzanie hasłami na stronie Konfigurowanie rozszerzenia. obraz globalparameters5

    Konfiguruj partycje i hierarchie

    Na stronie Partycje i hierarchie wybierz wszystkie typy obiektów. Każdy typ obiektu jest własną partycją.

    obraz partitions1

    Można również zastąpić wartości zdefiniowane na stronie Łączność lub Parametry globalne.

    Obraz partitions2

    Konfiguruj zakotwiczenia

    Ta strona jest tylko do odczytu, ponieważ kotwica została już zdefiniowana. Wybrany atrybut zakotwiczenia jest zawsze dołączany z typem obiektu, aby zapewnić jego unikatowość w różnych typach obiektów.

    obraz kotwic

    Konfigurowanie parametru kroku uruchamiania

    Te kroki są konfigurowane w profilach uruchamiania w łączniku. Te konfiguracje są rzeczywiste podczas importowania i eksportowania danych.

    Importowanie pełnej i różnicowej

    Łącznik ogólny SQL obsługuje importowanie pełne i różnicowe przy użyciu tych metod:

    • Tabela
    • Widok
    • Procedura składowana
    • SQL zapytania

    obraz runstep1

    Tabela/widok
    Aby zaimportować atrybuty o wielu wartościach dla obiektu, należy podać nazwę tabeli/widoku w nazwach wielosekwowych tabel/widoków i odpowiednich warunkach sprzężenia w warunku Sprzężenia z tabelą nadrzędną. Jeśli źródło danych zawiera więcej niż jedną wielosekwową tabelę, można użyć funkcji union w jednym widoku.

    Ważne

    Agent zarządzania SQL może pracować tylko z jedną tabelą o wielu wartościach. Nie umieszczaj w nazwie wielosekwowej tabeli/widoków więcej niż jednej nazwy tabeli. Jest to ograniczenie ogólne SQL.

    Przykład: chcesz zaimportować obiekt Employee i wszystkie jego atrybuty o wielu wartościach. Istnieją dwie tabele o nazwach Employee (main table) i Department (wiele wartości). Wykonaj następujące czynności:

    • Wpisz Employee wtabeli/widoku/SP.
    • Wpisz Department (Dział) w nazwach wielosekwowych tabel/widoków.
    • Wpisz warunek sprzężenia między działem & pracownika w &na przykład Employee.DEPTID=Department.DepartmentID . obraz runstep2

    Procedury składowane
    obraz runstep3

    • Jeśli masz dużo danych, zaleca się wdrożenie stronicowania za pomocą procedur składowanych.
    • Aby procedura składowana obsługiła stronicowanie, należy podać indeks startowy i indeks końcowy. Zobacz: Efektywne stronicowanie dużych ilości danych.
    • @StartIndex i @EndIndex są zastępowane w czasie wykonywania odpowiednią wartością rozmiaru strony skonfigurowaną na stronie Konfigurowanie kroku. Na przykład gdy łącznik pobiera pierwszą stronę, a rozmiar strony jest ustawiony na 500, w takiej sytuacji wartość @StartIndex wynosi 1, a @EndIndex 500. Te wartości zwiększają się, gdy łącznik pobiera kolejne strony i zmienia @StartIndex & @EndIndex danych.
    • Aby wykonać sparametryzowane procedury składowanej, podaj parametry w [Name]:[Direction]:[Value] formacie. Wprowadź każdy parametr w osobnym wierszu (użyj klawiszy Ctrl + Enter, aby uzyskać nowy wiersz).
    • Łącznik SQL obsługuje również operację importowania z serwerów połączonych w Microsoft SQL Server. Jeśli informacje powinny być pobierane z tabeli na serwerze połączonym, tabela powinna być dostarczana w formacie: [ServerName].[Database].[Schema].[TableName]
    • Łącznik SQL obsługuje tylko te obiekty, które mają podobną strukturę (zarówno nazwę aliasu, jak i typ danych) między informacjami o krokach uruchamiania i wykrywaniem schematu. Jeśli wybrany obiekt ze schematu i podane informacje w kroku uruchomienia są różne, łącznik SQL nie może obsługiwać scenariuszy tego typu.

    SQL zapytania
    obraz runstep4

    obraz runstep5

    • Zapytania z wieloma zestawami wyników nie są obsługiwane.
    • SQL obsługuje stronicowanie i dostarcza parametry start Index i End Index jako zmienną do obsługi stronicowania.

    Import zmian

    obraz runstep6

    Konfiguracja importu zmian wymaga nieco większej liczby konfiguracji niż w przypadku pełnego importu.

    • Jeśli wybierzesz podejście Wyzwalacz lub Migawka, aby śledzić zmiany różnicowe, podaj tabelę historii lub bazę danych migawek w polu Tabela historii lub Nazwa bazy danych migawki.
    • Należy również podać warunek sprzężenia między tabelą Historia i tabelą nadrzędną, na przykład Employee.ID=History.EmployeeID
    • Aby śledzić transakcję w tabeli nadrzędnej z tabeli historii, należy podać nazwę kolumny, która zawiera informacje o operacji (Add/Update/Delete).
    • Jeśli wybierzesz znak wodny w celu śledzenia zmian różnicowych, podaj nazwę kolumny, która zawiera informacje o operacji w kolumnie Nazwa kolumny znacznika limitu.
    • Zmiana typu kolumny atrybutu jest wymagana dla typu zmiany. Ta kolumna mapuje zmianę, która występuje w tabeli podstawowej lub tabeli z wieloma wartościami, na typ zmiany w widoku delty. Ta kolumna może zawierać Modify_Attribute zmiany typu zmiany na poziomie atrybutu lub typu zmiany Dodaj, Modyfikuj lub Usuń dla typu zmiany na poziomie obiektu. Jeśli jest to wartość inna niż wartość domyślna Dodaj, Modyfikuj lub Usuń, możesz zdefiniować te wartości przy użyciu tej opcji.

    Eksportowanie

    obraz runstep7

    Łącznik ogólny SQL obsługuje eksportowanie przy użyciu czterech obsługiwanych metod, takich jak:

    • Tabela
    • Widok
    • Procedura składowana
    • SQL zapytania

    Tabela/widok
    Jeśli wybierzesz opcję Tabela/widok, łącznik wygeneruje odpowiednie zapytania w celu wyeksportowania.

    Procedury składowane
    obraz runstep8

    W przypadku wybrania opcji Procedura składowana eksportowanie wymaga trzech różnych procedur składowanych do wykonywania operacji wstawiania/aktualizowania/usuwania.

    • Dodaj nazwę sp:ta sp działa, jeśli dowolny obiekt jest dostarczany do łącznika w celu wstawienia w odpowiedniej tabeli.
    • Zaktualizuj nazwę sp:ten sp działa, jeśli dowolny obiekt jest dostarczany do łącznika w celu aktualizacji w odpowiedniej tabeli.
    • Usuń nazwę sp:ten sp działa, jeśli dowolny obiekt jest dostarczany do łącznika w celu usunięcia w odpowiedniej tabeli.
    • Atrybut wybrany ze schematu używanego jako wartość parametru procedury składowanej. Na przykład (element EmployeeName jest wybierany w schemacie łącznika, a łącznik @EmployeeName: INPUT: EmployeeName zastępuje odpowiednią wartość podczas eksportowania)
    • Aby uruchomić sparametryzowane procedury składowanej, podaj parametry w [Name]:[Direction]:[Value] formacie. Wprowadź każdy parametr w osobnym wierszu (użyj klawiszy Ctrl + Enter, aby uzyskać nowy wiersz).

    SQL zapytania
    obraz runstep9

    W przypadku wybrania opcji SQL eksportowanie wymaga trzech różnych zapytań do wykonania operacji wstawiania/aktualizowania/usuwania.

    • Wstaw zapytanie:to zapytanie jest uruchamiane, jeśli dowolny obiekt jest dostarczany do łącznika w celu wstawienia w odpowiedniej tabeli.
    • Zapytanie aktualizacji:to zapytanie jest uruchamiane, jeśli dowolny obiekt jest dostarczany do łącznika w celu aktualizacji w odpowiedniej tabeli.
    • Usuń zapytanie:to zapytanie jest uruchamiane, jeśli dowolny obiekt jest dostarczany do łącznika w celu usunięcia w odpowiedniej tabeli.
    • Atrybut wybrany ze schematu używanego jako wartość parametru w zapytaniu, na przykład Insert into Employee (ID, Name) Values (@ID, @EmployeeName)

    Rozwiązywanie problemów

    • Aby uzyskać informacje na temat włączania rejestrowania w celu rozwiązywania problemów z łącznikiem, zobacz How to Enable ETW Tracing for Connectors (Jak włączyć śledzenie FUNKCJI ETW dla łączników).