Technické informace o obecném konektoru SQL
Tento článek popisuje obecný konektor SQL. Článek se vztahuje na následující produkty:
- Microsoft Identity Manager 2016 (MIM2016)
- Microsoft Entra ID
Pro MIM2016 je konektor k dispozici jako stažení z webu Microsoft Download Center.
Pokud chcete zobrazit tento konektor v akci, přečtěte si podrobný článek o obecném konektoru SQL.
Poznámka:
Microsoft Entra ID teď poskytuje jednoduché řešení založené na agentech pro zřizování uživatelů do databáze SQL bez nutnosti nasazení synchronizace MIM. Doporučujeme ho použít pro zřizování odchozích uživatelů. Další informace.
Přehled obecného konektoru SQL
Obecný konektor SQL umožňuje integrovat synchronizační službu s databázovým systémem, který nabízí připojení ODBC.
Z hlediska vysoké úrovně jsou aktuální verzí konektoru podporovány následující funkce:
Funkce | Technická podpora |
---|---|
Připojený zdroj dat | Konektor se podporuje se všemi 64bitovými ovladači ODBC*. Testoval se následujícím kódem: |
Scénáře | |
Operace | |
Schéma |
Požadavky
Před použitím konektoru se ujistěte, že na synchronizačním serveru máte následující:
- Microsoft .NET 4.6.2 Framework nebo novější
- 64bitové klientské ovladače ODBC
- Pokud ke komunikaci s Oracle 12c používáte konektor, vyžaduje to Oracle Instant Client 12.2.0.1 nebo novější s balíčkem ODBC.
- Pokud ke komunikaci s Oracle 18c-23c používáte konektor, vyžaduje to Oracle Instant Client 18-23 nebo novější s balíčkem ODBC a NLS_LANG systémovou proměnnou nastavenou tak, aby podporovala znaky UTF8, například NLS_LANG=AMERICAN_AMERICA. AL32UTF8.
- Tento konektor používá připravené příkazy SQL a více příkazů na transakci. Některé systémy rdBM můžou mít problémy s ovladači ODBC souvisejícími se zpracováním transakcí, příkazy SQL připravenými na straně serveru a více příkazů v rámci stejné transakce. Odpovídajícím způsobem nakonfigurujte možnosti připojení DSN tak, aby se tyto příkazy správně odesílaly do vaší databáze. Například ovladač ODBC MySQL verze 8.0.32 potřebuje možnosti NO_SSPS=1 a MULTI_STATEMENTS=1. Další možnosti, jako je "autocommit" nebo "commit on successful operations only" (potvrdit pouze úspěšné operace), můžou ovlivnit způsob zpracování dávkových exportů; Podrobnosti získáte od správce databáze. Pokud chcete řešit problémy během exportu, nastavte velikost dávky exportu na 1 a povolte podrobné protokolování konektoru.
Nasazení tohoto konektoru může vyžadovat změny konfigurace databáze a také změny konfigurace MIM. Pro nasazení zahrnující integraci MIM s databázovým serverem třetí strany v produkčním prostředí doporučujeme zákazníkům spolupracovat se svým dodavatelem databáze nebo partnera pro nasazení, který vám poskytne pomoc, pokyny a podporu pro tuto integraci.
Oprávnění v připojeném zdroji dat
Pokud chcete vytvořit nebo provést některou z podporovaných úloh v obecném konektoru SQL, musíte mít:
- db_datareader
- db_datawriter
Porty a protokoly
Informace o portech potřebných k fungování ovladače ODBC najdete v dokumentaci dodavatele databáze.
Vytvoření nového konektoru
Pokud chcete vytvořit obecný konektor SQL, vyberte v synchronizační službě agenta pro správu a vytvořte. Vyberte obecný konektor SQL (Microsoft).
Připojení
Konektor pro připojení používá soubor ODBC DSN. Vytvořte soubor DSN pomocí zdrojů dat ODBC nalezených v nabídce Start v části Nástroje pro správu. V nástroji pro správu vytvořte název DSN souboru, abyste ho mohli poskytnout konektoru.
Obrazovka Připojení je první při vytváření nového obecného konektoru SQL. Nejprve je potřeba zadat následující informace:
- Cesta k souboru DSN
- Autentizace
- Uživatelské jméno
- Heslo
Databáze by měla podporovat jednu z těchto metod ověřování:
- Ověřování systému Windows: Ověřovací databáze používá k ověření uživatele přihlašovací údaje systému Windows. Zadané uživatelské jméno a heslo se používá k ověření v databázi. Tento účet potřebuje oprávnění k databázi.
- Ověřování SQL: Ověřovací databáze používá pro připojení k databázi uživatelské jméno nebo heslo definované jedním z obrazovek připojení. Pokud uživatelské jméno nebo heslo uložíte do souboru DSN, budou mít přednost přihlašovací údaje zadané na obrazovce Připojení.
- Ověřování Azure SQL Database: Další informace najdete v tématu Připojení ke službě SQL Database prostřednictvím ověřování Microsoft Entra.
DN je Ukotvení: Pokud vyberete tuto možnost, použije se také jako atribut ukotvení. Lze ji použít pro jednoduchou implementaci, ale má také následující omezení:
- Konektor podporuje pouze jeden typ objektu. Proto všechny atributy odkazu mohou odkazovat pouze na stejný typ objektu.
Typ exportu: Objekt nahradit: Při exportu, pokud se změnily pouze některé atributy, celý objekt se všemi atributy se exportuje a nahradí existující objekt.
Schéma 1 (detekce typů objektů)
Na této stránce nakonfigurujete, jak konektor najde různé typy objektů v databázi.
Každý typ objektu se zobrazí jako oddíl a nakonfiguruje se dále v části Konfigurace oddílů a hierarchií.
Metoda detekce typu objektu: Konektor podporuje tyto metody detekce typů objektů.
- Pevná hodnota: Zadáte seznam typů objektů se seznamem odděleným čárkami. Například:
User,Group,Department
.
- Tabulka/Zobrazení/Uložená procedura: Zadejte název tabulky, zobrazení nebo uložené procedury a potom název sloupce, který poskytuje seznam typů objektů. Pokud používáte uloženou proceduru, zadejte pro ni také parametry ve formátu [Name]:[Direction]:[Value]. Zadejte každý parametr na samostatném řádku (k získání nového řádku použijte kombinaci kláves Ctrl+Enter).
- Dotaz SQL: Tato možnost umožňuje zadat dotaz SQL, který vrací jeden sloupec s typy objektů, například
SELECT [Column Name] FROM TABLENAME
. Vrácený sloupec musí být typu řetězec (varchar).
Schéma 2 (detekce typů atributů)
Na této stránce nakonfigurujete způsob zjištění názvů a typů atributů. Možnosti konfigurace jsou uvedeny pro každý typ objektu zjištěný na předchozí stránce.
Metoda detekce typu atributu: Konektor podporuje tyto metody detekce typů atributů s každým zjištěným typem objektu na obrazovce Schématu 1.
- Table/View/Stored Procedure: Zadejte název tabulky, zobrazení nebo uložené procedury, která by se měla použít k vyhledání názvů atributů. Pokud používáte uloženou proceduru, zadejte pro ni také parametry ve formátu [Name]:[Direction]:[Value]. Zadejte každý parametr na samostatném řádku (k získání nového řádku použijte kombinaci kláves Ctrl+Enter). Pokud chcete zjistit názvy atributů v atributu s více hodnotami, zadejte čárkami oddělený seznam tabulek nebo zobrazení. Scénáře s více hodnotami nejsou podporovány, pokud nadřazená a podřízená tabulka mají stejné názvy sloupců.
- Dotaz SQL: Tato možnost umožňuje zadat dotaz SQL, který vrací jeden sloupec s názvy atributů, například
SELECT [Column Name] FROM TABLENAME
. Vrácený sloupec musí být typu řetězec (varchar).
Schéma 3 (definování ukotvení a DN)
Tato stránka umožňuje konfigurovat atribut ukotvení a DN pro každý zjištěný typ objektu. Pokud chcete, aby ukotvení bylo jedinečné, můžete vybrat více atributů.
Vícehodnotové a logické atributy nejsou uvedeny.
Stejný atribut nelze použít pro DN a ukotvení, pokud není na stránce Připojení vybrána možnost Ukotvení .
Pokud je na stránce Připojení vybraná možnost DN, tato stránka vyžaduje pouze atribut DN. Tento atribut by se také použil jako atribut ukotvení.
Schéma 4 (definování typu atributu, odkazu a směru)
Tato stránka umožňuje nakonfigurovat typ atributu, například celé číslo, binární nebo logickou hodnotu a směr pro každý atribut. Všechny atributy ze schématu stránky 2 jsou uvedeny včetně atributů s více hodnotami.
- Typ dat: Používá se k mapování typu atributu na tyto typy známé synchronizačním modulem. Výchozí hodnota je použít stejný typ jako zjištěný ve schématu SQL, ale datum a odkaz nejsou snadno zjistitelné. Pro ty musíte zadat DateTime nebo Reference.
- Směr: Směr atributu můžete nastavit na Import, Export nebo ImportExport. ImportExport je výchozí.
Poznámky:
- Pokud konektor typ atributu nerozpozná, použije datový typ String.
- Vnořené tabulky lze považovat za tabulky databáze s jedním sloupcem. Oracle ukládá řádky vnořené tabulky v žádném konkrétním pořadí. Když však načtete vnořenou tabulku do proměnné PL/SQL, řádky se zadají po sobě jdoucí dolní indexy začínající na 1. Díky tomu máte přístup podobný poli k jednotlivým řádkům.
- VarRYS nejsou v konektoru podporovány.
Schéma 5 (definování oddílu pro referenční atributy)
Na této stránce nakonfigurujete všechny referenční atributy, na které odkazuje atribut (typ objektu).
Pokud používáte dn je ukotvení, musíte použít stejný typ objektu jako ten, ze který odkazujete. Nelze odkazovat na jiný typ objektu.
Poznámka:
Od aktualizace z března 2017 je nyní k dispozici možnost "*" Pokud je tato možnost zvolena, budou importovány všechny možné typy členů.
Důležité
Od května 2017 se jakákoli možnost "*" změnila tak, aby podporovala tok importu a exportu. Pokud chcete tuto možnost použít, měla by mít vícehodnotová tabulka/zobrazení atribut, který obsahuje typ objektu.
Pokud je vybrán znak *, musí být zadán také název sloupce s typem objektu.
Po importu uvidíte něco podobného jako na následujícím obrázku:
Globální parametry
Stránka Globální parametry slouží ke konfiguraci rozdílového importu, formátu data a času a metody Password.
Obecný konektor SQL podporuje následující metody rozdílového importu:
- Aktivační událost: Viz Generování rozdílových zobrazení pomocí triggerů.
- Vodoznak: Obecný přístup, který lze použít s libovolnou databází. Dotaz vodoznaku je předem vyplněný na základě dodavatele databáze. Sloupec vodoznaku musí být k dispozici v každé použité tabulce nebo zobrazení. Tento sloupec musí sledovat vkládání a aktualizace tabulek jako závislých (vícehodnotových nebo podřízených) tabulek. Hodiny mezi synchronizační službou a databázovým serverem musí být synchronizovány. Pokud ne, některé položky v rozdílovém importu můžou být vynechány.
Omezení:- Strategie vodoznaku nepodporuje odstraněné objekty.
- Snímek: (Funguje pouze s Microsoft SQL Serverem) Generování rozdílových zobrazení pomocí snímků
- Sledování změn: (Funguje pouze s Microsoft SQL Serverem) Informace o řešení Change Tracking
Omezení:- Atribut Anchor &DN musí být součástí primárního klíče pro vybraný objekt v tabulce.
- Dotaz SQL není během importu a exportu se službou Change Tracking podporován.
Další parametry: Zadejte časové pásmo databázového serveru označující umístění databázového serveru. Tato hodnota se používá k podpoře různých formátů atributů data a času.
Konektor vždy ukládá datum a datum a čas ve formátu UTC. Aby bylo možné správně převést datum a čas, je nutné zadat časové pásmo databázového serveru a použitý formát. Formát by měl být vyjádřen ve formátu .NET.
Během exportu musí být při každém atributu data a času zadaného konektorem ve formátu času UTC.
Konfigurace hesla: Konektor poskytuje možnosti synchronizace hesel a podporuje nastavení a změnu hesla.
Konektor poskytuje dvě metody pro podporu synchronizace hesel:
- Uložená procedura: Tato metoda vyžaduje dvě uložené procedury pro podporu nastavení a změny hesla. Zadejte všechny parametry pro přidání a změnu operace hesla v Nastavení hesla SP a Změnit parametry SP hesla podle následujícího příkladu.
- Rozšíření hesla: Tato metoda vyžaduje knihovnu DLL rozšíření hesla (musíte zadat název knihovny DLL rozšíření, který implementuje rozhraní IMAExtensible2Password ). Sestavení rozšíření hesla musí být umístěné ve složce rozšíření, aby konektor mohl za běhu načíst knihovnu DLL.
Musíte také povolit správu hesel na stránce Konfigurovat rozšíření .
Configure Partitions and Hierarchies
Na stránce oddílů a hierarchií vyberte všechny typy objektů. Každý typ objektu je vlastní oddíl.
Můžete také přepsat hodnoty definované na stránce Připojení nebo Globální parametry .
Konfigurace ukotvení
Tato stránka je určená jen pro čtení, protože ukotvení již bylo definováno. Vybraný atribut ukotvení je vždy připojen s typem objektu, aby se zajistilo, že zůstane jedinečný napříč typy objektů.
Konfigurace parametru kroku spuštění
Tyto kroky jsou nakonfigurovány pro profily spuštění v konektoru. Tyto konfigurace dělají skutečnou práci při importu a exportu dat.
Úplný a rozdílový import
Obecný konektor SQL podporuje úplný a rozdílový import pomocí těchto metod:
- Table
- Zobrazení
- Uložená procedura
- Příkaz jazyka SQL
Tabulka/zobrazení
Pokud chcete importovat atributy s více hodnotami pro objekt, musíte zadat název tabulky/zobrazení v části Název tabulky/zobrazení s více hodnotami a příslušné podmínky spojení v podmínce Spojení s nadřazenou tabulkou. Pokud je ve zdroji dat více než jedna tabulka s více hodnotami, můžete použít sjednocení do jednoho zobrazení.
Důležité
Obecný agent pro správu SQL může pracovat pouze s jednou tabulkou s více hodnotami. Neumisťujte do názvu vícehodnotové tabulky nebo zobrazení více než jeden název tabulky. Jedná se o omezení obecného SQL.
Příklad: Chcete importovat objekt Employee a všechny jeho atributy s více hodnotami. Existují dvě tabulky s názvem Employee (hlavní tabulka) a Department (s více hodnotami). Postupujte následovně:
- Zadejte zaměstnance do tabulky, zobrazení nebo sp.
- Zadejte oddělení v názvu vícehodnotové tabulky nebo zobrazení.
- Zadejte podmínku spojení mezi zaměstnancem a oddělením v podmínce spojení, například
Employee.DEPTID=Department.DepartmentID
.
Uložené procedury
- Pokud máte hodně dat, doporučujeme implementovat stránkování s uloženými procedurami.
- Aby uložená procedura podporovala stránkování, musíte zadat počáteční index a koncový index. Viz: Efektivní stránkování velkých objemů dat.
- @StartIndex a @EndIndex v době provádění se nahradí odpovídající hodnotou velikosti stránky nakonfigurovanou na stránce Konfigurovat krok . Například když konektor načte první stránku a velikost stránky je nastavena na 500, v takové situaci @StartIndex by bylo 1 a @EndIndex 500. Tyto hodnoty se zvětší, když konektor načte další stránky a změní @StartIndex hodnotu & @EndIndex .
- Pokud chcete spustit parametrizovanou uloženou proceduru, zadejte parametry ve
[Name]:[Direction]:[Value]
formátu. Zadejte každý parametr na samostatný řádek (k získání nového řádku použijte kombinaci kláves Ctrl + Enter). - Obecný konektor SQL podporuje také operaci importu z propojených serverů v Microsoft SQL Serveru. Pokud by se informace měly načíst z tabulky na propojeném serveru, měla by být tabulka uvedená ve formátu:
[ServerName].[Database].[Schema].[TableName]
- Obecný konektor SQL podporuje pouze objekty, které mají podobnou strukturu (název aliasu i datový typ) mezi informacemi o krocích spuštění a detekcí schématu. Pokud se vybraný objekt ze schématu a poskytnuté informace v kroku spuštění liší, konektor SQL nemůže tento typ scénářů podporovat.
Dotaz SQL
Důležité
Znak CRLF nebo nový řádek slouží jako oddělovač mezi více příkazy.
Ukázkový dotaz SQL se stránkováním – nesprávný dotaz nebude fungovat, protože se používá nový znak řádku:
WITH A AS
(select dense_rank() over (order by BusinessEntityID)
rownumber, BusinessEntityID, DeptID, NationalIDNumber, LoginID, JobTitle, BirthDate, MaritalStatus, HireDate, ModifiedDate, Password
from Employees
) select * from A where rownumber between @StartIndex and @EndIndex
Ukázkový dotaz SQL se stránkováním – správný dotaz:
WITH A AS (select dense_rank() over (order by BusinessEntityID) rownumber, BusinessEntityID, DeptID, NationalIDNumber, LoginID, JobTitle, BirthDate, MaritalStatus, HireDate, ModifiedDate, Password from Employees) select * from A where rownumber between @StartIndex and @EndIndex
- Nepodporuje se více dotazů sad výsledků.
- Dotaz SQL podporuje stránkování a poskytuje počáteční index a koncový index jako proměnnou pro podporu stránkování.
Rozdílový import
Konfigurace rozdílového importu vyžaduje v porovnání s úplným importem několik dalších konfigurací.
- Pokud pro sledování rozdílových změn zvolíte trigger nebo snímek, zadejte tabulku historie nebo databázi snímků do pole Název tabulky historie nebo databáze snímků.
- Musíte také zadat podmínku spojení mezi tabulkou Historie a nadřazenou tabulkou, například
Employee.ID=History.EmployeeID
- Pokud chcete sledovat transakci nadřazené tabulky z tabulky historie, musíte zadat název sloupce, který obsahuje informace o operaci (přidat, aktualizovat nebo odstranit).
- Pokud zvolíte Vodoznak ke sledování rozdílových změn, zadejte název sloupce, který obsahuje informace o operaci v názvu sloupce vodoznaku.
- Sloupec atributu change Type je vyžadován pro typ změny. Tento sloupec mapuje změnu, která se vyskytuje v primární tabulce nebo tabulce s více hodnotami, na typ změny v rozdílovém zobrazení. Tento sloupec může obsahovat typ změny Modify_Attribute pro změnu na úrovni atributu nebo typ změny přidat, upravit nebo odstranit pro typ změny na úrovni objektu. Pokud se jedná o jinou hodnotu než výchozí hodnota Přidat, Upravit nebo Odstranit, můžete tyto hodnoty definovat pomocí této možnosti.
Export
Obecný konektor SQL podporuje export pomocí čtyř podporovaných metod, jako jsou:
- Table
- Zobrazení
- Uložená procedura
- Příkaz jazyka SQL
Tabulka/zobrazení
Pokud zvolíte možnost Tabulka/zobrazení, konektor vygeneruje příslušné dotazy pro export.
Uložené procedury
Pokud zvolíte možnost Uložená procedura, export vyžaduje k provádění operací vložení, aktualizace nebo odstranění tři různé uložené procedury.
- Přidat název sp: Tato sp spustí, pokud některý z objektů přichází do konektoru pro vložení do příslušné tabulky.
- Update SP Name: Tato sp spustí, pokud některý z objektů přichází do konektoru pro aktualizaci v příslušné tabulce.
- Odstranit název sp: Tato sp spustí, pokud některý z objektů přichází do konektoru pro odstranění v příslušné tabulce.
- Atribut vybraný ze schématu použitého jako hodnota parametru k uložené proceduře Například
@EmployeeName: INPUT: EmployeeName
(EmployeeName je vybrán ve schématu konektoru a konektor nahradí odpovídající hodnotu při exportu). - Pokud chcete spustit parametrizovanou uloženou proceduru, zadejte parametry ve
[Name]:[Direction]:[Value]
formátu. Zadejte každý parametr na samostatný řádek (k získání nového řádku použijte kombinaci kláves Ctrl + Enter).
Dotaz SQL
Pokud zvolíte možnost dotazu SQL, export vyžaduje, aby operace vložení, aktualizace nebo odstranění prováděly tři různé dotazy.
- Vložit dotaz: Tento dotaz se spustí, pokud některý z objektů přichází do konektoru pro vložení do příslušné tabulky.
- Aktualizovat dotaz: Tento dotaz se spustí, pokud některý z objektů přichází do konektoru pro aktualizaci v příslušné tabulce.
- Odstranit dotaz: Tento dotaz se spustí, pokud některý z objektů přichází do konektoru pro odstranění v příslušné tabulce.
- Atribut vybraný ze schématu použitého jako hodnota parametru dotazu, například
Insert into Employee (ID, Name) Values (@ID, @EmployeeName)
Důležité
Znak CRLF nebo nový řádek slouží jako oddělovač mezi více příkazy.
Ukázkový vícekrokový aktualizační dotaz SQL – nový znak řádku slouží k oddělení příkazů SQL:
update Employee set jobTitle=@JOBTITLE where BusinessEntityID=@BUSINESSENTITYID
insert into ChangeLog VALUES (@BUSINESSENTITYID)
Řešení problému
- Informace o tom, jak povolit protokolování pro řešení potíží s konektorem, najdete v tématu Povolení trasování trasování událostí pro Windows pro konektory.