Általános SQL-összekötő – műszaki referencia
Ez a cikk az általános SQL-összekötőt ismerteti. A cikk a következő termékekre vonatkozik:
- 2016 Microsoft Identity Manager (MIM2016)
- Microsoft Entra ID
A MIM2016 esetében az összekötő letölthető a Microsoft letöltőközpontból.
Ha működés közben szeretné megtekinteni ezt az összekötőt, tekintse meg az általános SQL-összekötő lépésről lépésre című cikket.
Megjegyzés
Microsoft Entra ID mostantól egyszerű ügynökalapú megoldást kínál a felhasználók SQL-adatbázisba való kiépítéséhez anélkül, hogy MIM-szinkronizálási üzembe helyezésre van szükség. Javasoljuk, hogy használja a kimenő felhasználóátadáshoz. További információk.
Az általános SQL-összekötő áttekintése
Az Általános SQL-összekötővel integrálhatja a szinkronizálási szolgáltatást egy ODBC-kapcsolatot kínáló adatbázisrendszerrel.
Magas szintű szempontból az összekötő jelenlegi kiadása a következő funkciókat támogatja:
Szolgáltatás | Támogatás |
---|---|
Csatlakoztatott adatforrás | Az összekötőt az összes 64 bites ODBC-illesztőprogram támogatja*. A tesztelés a következőkkel történt: |
Forgatókönyvek | |
Üzemeltetés | |
Séma |
Előfeltételek
Az összekötő használata előtt győződjön meg arról, hogy rendelkezik a következőkkel a szinkronizálási kiszolgálón:
- Microsoft .NET 4.6.2-keretrendszer vagy újabb
- 64 bites ODBC-ügyfélillesztők
- Ha az összekötőt használja az Oracle 12c-vel való kommunikációhoz, ehhez az Oracle Instant Client 12.2.0.1-et vagy újabb verziót kell használnia az ODBC-csomaggal.
- Ha az összekötőt az Oracle 18c-23c-vel való kommunikációra használja, ehhez az Oracle Instant Client 18-23-at vagy újabbat kell használnia az ODBC-csomaggal, valamint az NLS_LANG rendszerváltozót, amely UTF8 karaktereket támogat, például NLS_LANG=AMERICAN_AMERICA. AL32UTF8.
- Ez az összekötő SQL által előkészített utasításokat és tranzakciónként több utasítást használ. Egyes RDBM-rendszerek az ODBC-illesztőikben problémákat tapasztalhatnak a tranzakciókezeléssel, a kiszolgálóoldali előkészített SQL-utasításokkal és ugyanazon a tranzakción belül több utasítással kapcsolatban. Ennek megfelelően konfigurálja a DSN-kapcsolat beállításait, hogy az utasítások megfelelően legyenek elküldve az adatbázisba. A MySQL ODBC-illesztő 8.0.32-es verziójának például NO_SSPS=1 és MULTI_STATEMENTS=1 beállításokra van szüksége. Más lehetőségek, például az "automatikus kiküldés" vagy a "véglegesítés csak sikeres műveletekre" hatással lehetnek a kötegelt exportálások kezelésére; A részletekért forduljon az adatbázis rendszergazdájához. Az exportálás során felmerülő problémák elhárításához állítsa az exportálási köteg méretét 1-esre, és engedélyezze az összekötő részletes naplózását.
Az összekötő üzembe helyezéséhez szükség lehet az adatbázis konfigurációjának módosítására, valamint a MIM konfigurációs módosítására. Ha a MIM-et egy külső adatbázis-kiszolgálóval integrálja éles környezetben, javasoljuk, hogy az ügyfelek az adatbázis szállítójával vagy egy üzembehelyezési partnerrel együttműködve segítsenek, útmutatást és támogatást nyújthassanak az integrációhoz.
Engedélyek a csatlakoztatott adatforrásban
Az Általános SQL-összekötőben támogatott feladatok létrehozásához vagy végrehajtásához a következőkre van szükség:
- db_datareader
- db_datawriter
Portok és protokollok
Az ODBC-illesztő működéséhez szükséges portokért tekintse meg az adatbázis gyártójának dokumentációját.
Új összekötő létrehozása
Általános SQL-összekötő létrehozásához a Szinkronizálási szolgáltatásban válassza a Felügyeleti ügynök és a Létrehozás lehetőséget. Válassza az Általános SQL-összekötőt (Microsoft ).
Kapcsolatok
Az összekötő ODBC DSN-fájlt használ a csatlakozáshoz. Hozza létre a DSN-fájlt a Felügyeleti eszközök menü start menüjében található ODBC-adatforrások használatával. A felügyeleti eszközben hozzon létre egy fájl DSN-t , hogy az elérhető legyen az összekötő számára.
Új általános SQL-összekötő létrehozásakor a Kapcsolat képernyő az első. Először meg kell adnia a következő információkat:
- DSN-fájl elérési útja
- Hitelesítés
- Felhasználónév
- Jelszó
Az adatbázisnak támogatnia kell az alábbi hitelesítési módszerek egyikét:
- Windows-hitelesítés: A hitelesítő adatbázis a Windows hitelesítő adatait használja a felhasználó ellenőrzéséhez. A megadott felhasználónév/jelszó az adatbázissal való hitelesítésre szolgál. Ennek a fióknak engedélyekre van szüksége az adatbázishoz.
- SQL-hitelesítés: A hitelesítő adatbázis a Kapcsolat képernyőn megadott felhasználónevet/jelszót használja az adatbázishoz való csatlakozáshoz. Ha a felhasználónevet/előszót a DSN-fájlban tárolja, a Kapcsolat képernyőn megadott hitelesítő adatok elsőbbséget élveznek.
- Azure SQL adatbázis-hitelesítés: További információ: Csatlakozás SQL Database Microsoft Entra hitelesítéssel.
A DN a Horgony: Ha ezt a lehetőséget választja, a DN is használható horgonyattribútumként. Egyszerű megvalósításhoz használható, de a következő korlátozásokkal is rendelkezik:
- Az összekötő csak egy objektumtípust támogat. Ezért a referenciaattribútumok csak ugyanarra az objektumtípusra hivatkozhatnak.
Exportálás típusa: Objektum cseréje: Az exportálás során, ha csak néhány attribútum módosult, a rendszer a teljes objektumot az összes attribútummal együtt exportálja, és lecseréli a meglévő objektumot.
1. séma (Objektumtípusok észlelése)
Ezen a lapon konfigurálni fogja, hogy az összekötő hogyan találja meg a különböző objektumtípusokat az adatbázisban.
Minden objektumtípus partícióként jelenik meg, és tovább konfigurálható a Partíciók és hierarchiák konfigurálása című témakörben.
Objektumtípus-észlelési módszer: Az összekötő támogatja ezeket az objektumtípus-észlelési módszereket.
- Rögzített érték: Az objektumtípusok listáját vesszővel tagolt listával adhatja meg. Példa:
User,Group,Department
.
- Tábla/nézet/tárolt eljárás: Adja meg a tábla/nézet/tárolt eljárás nevét, majd az objektumtípusok listáját tartalmazó oszlopnevet. Ha tárolt eljárást használ, adja meg a paramétereket [Name]:[Direction]:[Value] formátumban is. Adja meg az egyes paramétereket egy külön sorban (új sor lekéréséhez használja a Ctrl+Enter billentyűkombinációt).
- SQL Query: Ezzel a beállítással olyan SQL-lekérdezést adhat meg, amely egyetlen oszlopot ad vissza objektumtípusokkal, például
SELECT [Column Name] FROM TABLENAME
: . A visszaadott oszlopnak sztring típusúnak (varchar) kell lennie.
2. séma (attribútumtípusok észlelése)
Ezen a lapon konfigurálja az attribútumnevek és -típusok észlelésének módját. A konfigurációs beállítások az előző oldalon észlelt összes objektumtípushoz szerepelnek.
Attribútumtípus-észlelési módszer: Az Összekötő támogatja ezeket az attribútumtípus-észlelési módszereket az 1. séma képernyőjén található összes észlelt objektumtípus esetében.
- Table/View/Stored Procedure (Tábla/Nézet/Tárolt eljárás): Adja meg annak a tábla-/nézet-/tárolt eljárásnak a nevét, amelyet az attribútumnevek megkereséséhez használni kell. Ha tárolt eljárást használ, adja meg a paramétereket [Name]:[Direction]:[Value] formátumban is. Adja meg az egyes paramétereket egy külön sorban (új sor lekéréséhez használja a Ctrl+Enter billentyűkombinációt). A többértékű attribútumok attribútumneveinek észleléséhez adja meg a táblák vagy nézetek vesszővel tagolt listáját. A többértékű forgatókönyvek nem támogatottak, ha a szülő- és gyermektábla azonos oszlopnevekkel rendelkezik.
- SQL-lekérdezés: Ezzel a beállítással megadhat egy SQL-lekérdezést, amely egyetlen oszlopot ad vissza attribútumnevekkel, például
SELECT [Column Name] FROM TABLENAME
: . A visszaadott oszlopnak sztring típusúnak (varchar) kell lennie.
3. séma (Horgony és DN meghatározása)
Ezen a lapon minden észlelt objektumtípushoz konfigurálhat horgony- és DN-attribútumot. A horgony egyedivé tétele érdekében több attribútumot is kiválaszthat.
A többértékű és a logikai attribútumok nem szerepelnek a listában.
Ugyanez az attribútum nem használható a DN-hez és a horgonyhoz, kivéve, ha a DN a Horgony lehetőség van kiválasztva a Kapcsolat lapon.
Ha a DN Horgony elem van kiválasztva a Kapcsolat lapon, ehhez a laphoz csak a DN attribútum szükséges. Ez az attribútum is használható horgonyattribútumként.
4. séma (attribútumtípus, hivatkozás és irány meghatározása)
Ezen a lapon konfigurálhatja az attribútum típusát, például egész számot, binárist vagy logikait, valamint az egyes attribútumok irányát. A 2. lapséma összes attribútuma szerepel a listában, beleértve a többértékű attribútumokat is.
- DataType: Az attribútumtípus szinkronizálási motor által ismert típusokra való leképezésére szolgál. Az alapértelmezett beállítás az, hogy ugyanazt a típust használja, mint az SQL-sémában, de a DateTime és a Referencia nem könnyen észlelhető. Ezekhez meg kell adnia a DateTime vagy a Reference értéket.
- Irány: Az attribútum irányát Beállíthatja Importálás, Exportálás vagy ImportálásExport értékre. Az ImportExport az alapértelmezett.
Megjegyzések:
- Ha az összekötő nem észlel attribútumtípust, a Sztring adattípust használja.
- A beágyazott táblák egyoszlopos adatbázistábláknak tekinthetők. Az Oracle egy beágyazott tábla sorait külön sorrendben tárolja. Ha azonban a beágyazott táblát egy PL/SQL-változóba kéri le, a sorok egymást követő alsó indexeket kapnak 1-től kezdve. Ez tömbszerű hozzáférést biztosít az egyes sorokhoz.
- A VARRYS nem támogatott az összekötőben.
5. séma (Partíció definiálása referenciaattribútumokhoz)
Ezen a lapon konfigurálhatja az összes olyan referenciaattribútumot, amelyre az attribútum hivatkozik (objektumtípus).
Ha a DN horgonyt használja, akkor ugyanazt az objektumtípust kell használnia, mint amelyikről hivatkozik. Más objektumtípusra nem hivatkozhat.
Megjegyzés
A 2017. márciusi frissítéstől kezdve most már elérhető a "*" lehetőség, ha ezt a lehetőséget választja, akkor az összes lehetséges tagtípus importálva lesz.
Fontos
2017 májusától a "*" más néven bármely lehetőség megváltozott az importálási és exportálási folyamat támogatásához. Ha ezt a lehetőséget szeretné használni, a többértékű táblának/nézetnek rendelkeznie kell egy attribútummal, amely tartalmazza az objektumtípust.
Ha a "*" van kiválasztva, akkor az objektumtípusú oszlop nevét is meg kell adni.
Az importálás után az alábbi képhez hasonlót fog látni:
Globális paraméterek
A Globális paraméterek lap a Különbözeti importálás, a Dátum/idő formátum és a Jelszó metódus konfigurálására szolgál.
Az általános SQL-összekötő a deltaimportálás alábbi módszereit támogatja:
- Eseményindító: Lásd: Változásnézetek létrehozása eseményindítókkal.
- Vízjel: Általános megközelítés, amely bármely adatbázissal használható. A vízjeles lekérdezés előre ki van töltve az adatbázis szállítója alapján. A vízjeloszlopnak minden felhasznált táblán/nézeten jelen kell lennie. Ennek az oszlopnak nyomon kell követnie a táblák beszúrásait és frissítéseit, valamint a függő (többértékű vagy gyermek) táblákat. A szinkronizálási szolgáltatás és az adatbázis-kiszolgáló közötti órákat szinkronizálni kell. Ha nem, előfordulhat, hogy a különbözeti importálás egyes bejegyzései kimaradnak.
Korlátozás:- A vízjelstratégia nem támogatja a törölt objektumokat.
- Pillanatkép: (csak a Microsoft SQL Server működik) Különbözeti nézetek létrehozása pillanatképek használatával
- Change Tracking: (Csak a Microsoft SQL Server működik) A Change Tracking ismertetése
Korlátozások:- A Horgony & DN attribútumnak a tábla kijelölt objektumához tartozó elsődleges kulcsnak kell lennie.
- Az SQL-lekérdezés nem támogatott az importálás és exportálás során Change Tracking.
További paraméterek: Adja meg az adatbázis-kiszolgáló időzónáját, amely jelzi az adatbázis-kiszolgáló helyét. Ez az érték a dátum- & időattribútumok különböző formátumainak támogatására szolgál.
Az összekötő mindig UTC formátumban tárolja a dátumot és a dátum-időt. A dátum és időpontok megfelelő konvertálásához meg kell adni az adatbázis-kiszolgáló időzónáját és a használt formátumot. A formátumot .NET formátumban kell kifejezni.
Az exportálás során minden dátum-idő attribútumot meg kell adni az összekötőnek UTC időformátumban.
Jelszókonfiguráció: Az összekötő jelszó-szinkronizálási képességeket biztosít, és támogatja a jelszó beállítását és módosítását.
Az összekötő két módszert kínál a jelszó-szinkronizálás támogatására:
- Tárolt eljárás: Ehhez a módszerhez két tárolt eljárásra van szükség a jelszó & beállításának támogatásához. Írja be az összes paramétert a jelszó hozzáadásához és módosításához a Jelszó SP beállítása és a Jelszó SP-paraméterek módosítása részben az alábbi példának megfelelően.
- Jelszóbővítmény: Ehhez a metódushoz jelszóbővítmény-DLL szükséges (meg kell adnia az IMAExtensible2Password felületet megvalósító bővítmény DLL-nevét). A jelszóbővítmény-szerelvényt a bővítménymappába kell helyezni, hogy az összekötő futásidőben betölthesse a DLL-t.
A Jelszókezelést a Bővítmény konfigurálása lapon is engedélyeznie kell.
Partíciók és hierarchiák konfigurálása
A partíciók és hierarchiák lapon válassza ki az összes objektumtípust. Minden objektumtípus saját partíció.
Felülbírálhatja a Kapcsolat vagy a Globális paraméterek lapon megadott értékeket is.
Horgonyok konfigurálása
Ez a lap írásvédett, mivel a horgony már definiálva van. A kiválasztott horgonyattribútumot a program mindig hozzáfűzi az objektumtípushoz, hogy az egyedi maradjon az objektumtípusok között.
Futtatási lépés paraméterének konfigurálása
Ezek a lépések az összekötő futtatási profiljaiban vannak konfigurálva. Ezek a konfigurációk az adatok importálásának és exportálásának tényleges munkáját hajtják végre.
Teljes és Különbözeti importálás
Az általános SQL Connector az alábbi módszerekkel támogatja a teljes és a különbözeti importálást:
- Tábla
- Nézet
- Tárolt eljárás
- SQL-lekérdezés
Táblázat/nézet
Ha többértékű attribútumokat szeretne importálni egy objektumhoz, meg kell adnia a tábla/nézet nevét a Többértékű tábla/nézetek neve mezőben, valamint a megfelelő illesztésfeltételeket az Illesztés feltételben a szülőtáblával. Ha egynél több többértékű tábla található az adatforrásban, az egyesítőt egyetlen nézethez használhatja.
Fontos
Az általános SQL felügyeleti ügynök csak egy többértékű táblával működhet. Ne helyezze többértékű táblába/nézetekbe egynél több táblanevet. Ez az általános SQL korlátozása.
Példa: Importálja az Employee objektumot és annak összes többértékű attribútumát. Két tábla van: Employee (main table) és Department (multi-valued). Tegye a következőket:
- Írja be az Employee kifejezést a Table/View/SP mezőbe.
- Írja be a Részleg szót a Többértékű tábla/nézetek neve mezőbe.
- Írja be az illesztés feltételét az Alkalmazott & Részleg között a Join Condition (Illesztés feltétel) mezőbe, például
Employee.DEPTID=Department.DepartmentID
: .
Tárolt eljárások
- Ha sok adattal rendelkezik, javasoljuk, hogy a tárolt eljárásokkal hajtsa végre a lapozást.
- Ahhoz, hogy a tárolt eljárás támogassa a tördelést, meg kell adnia az Index indítása és a Záró index lehetőséget. Lásd: Hatékony lapozás nagy mennyiségű adaton keresztül.
- @StartIndex@EndIndex és a végrehajtási időpontban lecserélődik a Lépés konfigurálása lapon konfigurált megfelelő oldalméret-értékre. Ha például az összekötő lekéri az első oldalt, és az oldalméret 500-ra van állítva, ilyen esetben @StartIndex 1 és @EndIndex 500 lesz. Ezek az értékek akkor növekednek, ha az összekötő lekéri a következő oldalakat, és módosítja a @StartIndex & @EndIndex értéket.
- A paraméteres tárolt eljárás végrehajtásához adja meg a paramétereket
[Name]:[Direction]:[Value]
formátumban. Adja meg az egyes paramétereket egy külön sorban (a Ctrl + Enter billentyűkombinációval új sort kaphat). - Az általános SQL-összekötő a Microsoft SQL Server csatolt kiszolgálókról történő importálási műveletet is támogatja. Ha az adatokat egy csatolt kiszolgálón lévő táblából kell lekérni, akkor a Table formátumot a következő formátumban kell megadni:
[ServerName].[Database].[Schema].[TableName]
- Az általános SQL Connector csak azokat az objektumokat támogatja, amelyek a futtatási lépések adatai és a sémaészlelés között hasonló szerkezettel (aliasnévvel és adattípussal) rendelkeznek. Ha a sémából kiválasztott objektum és a futtatáskor megadott információk eltérnek, akkor az SQL Connector nem tudja támogatni az ilyen típusú forgatókönyveket.
SQL-lekérdezés
Fontos
A CRLF vagy az új sorkarakterek elválasztóként szolgálnak több utasítás között.
Minta SQL-lekérdezés lapozással – helytelen lekérdezés, nem fog működni az új sor karakter használata esetén:
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
Minta SQL-lekérdezés lapozással – helyes lekérdezés:
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
- Több eredményhalmaz lekérdezése nem támogatott.
- Az SQL-lekérdezés támogatja a tördelést, és változóként adja meg a Kezdő index és a Záró index lehetőséget a lapozás támogatásához.
Különbözeti importálás
A Különbözeti importálás konfigurációja több konfigurációt igényel a teljes importáláshoz képest.
- Ha az Eseményindító vagy a Pillanatkép megközelítést választja a változásváltozások nyomon követéséhez, adja meg az Előzménytábla vagy a Pillanatkép-adatbázis mezőt az Előzménytábla vagy a Pillanatkép-adatbázis neve mezőben.
- Az Előzménytábla és a Szülőtábla közötti illesztés feltételét is meg kell adnia, például
Employee.ID=History.EmployeeID
- Ha nyomon szeretné követni a tranzakciót a szülőtáblában az előzménytáblából, meg kell adnia a műveletinformációkat tartalmazó oszlopnevet (Hozzáadás/Frissítés/Törlés).
- Ha a változásváltozások követéséhez a Vízjel lehetőséget választja, adja meg a műveletinformációkat tartalmazó oszlopnevet a Vízjel oszlop neve mezőben.
- A változástípushoz szükség van a Change Type attribútum oszlopra. Ez az oszlop az elsődleges vagy a többértékű táblában bekövetkező módosítást a változási nézetben lévő változástípusra képezi le. Ez az oszlop tartalmazhatja az attribútumszintű módosítás Modify_Attribute változástípusát, illetve az objektumszintű módosítástípusHoz, Módosításhoz vagy Törléshez tartozó módosítástípust. Ha nem az alapértelmezett Hozzáadás, Módosítás vagy Törlés értékről van szó, akkor ezt a beállítást használva definiálhatja ezeket az értékeket.
Exportálás
Az általános SQL Connector négy támogatott módszerrel támogatja az exportálást, például:
- Tábla
- Nézet
- Tárolt eljárás
- SQL-lekérdezés
Táblázat/nézet
Ha a Tábla/nézet lehetőséget választja, az összekötő létrehozza a megfelelő lekérdezéseket az exportáláshoz.
Tárolt eljárások
Ha a Tárolt eljárás lehetőséget választja, az Exportálás három különböző tárolt eljárást igényel a beszúrási/frissítési/törlési műveletek végrehajtásához.
- SP-név hozzáadása: Ez az SP akkor fut, ha valamelyik objektum az összekötőhöz érkezik a megfelelő táblába való beszúráshoz.
- Sp name frissítése: Ez az SP akkor fut, ha valamelyik objektum az összekötőhöz érkezik a frissítéshez a megfelelő táblában.
- SP-név törlése: Ez az SP akkor fut, ha valamelyik objektum az összekötőhöz kerül törlésre a megfelelő táblában.
- A tárolt eljárás paraméterértékeként használt sémából kiválasztott attribútum. Például
@EmployeeName: INPUT: EmployeeName
(Az EmployeeName ki van jelölve az összekötő sémájában, és az összekötő az exportálás során lecseréli a megfelelő értéket) - A paraméteres tárolt eljárás futtatásához adja meg a
[Name]:[Direction]:[Value]
paramétereket formátumban. Adja meg az egyes paramétereket egy külön sorban (a Ctrl + Enter billentyűkombinációval új sort kaphat).
SQL-lekérdezés
Ha az SQL-lekérdezés lehetőséget választja, az Exportálás három különböző lekérdezést igényel a beszúrási/frissítési/törlési műveletek végrehajtásához.
- Lekérdezés beszúrása: Ez a lekérdezés akkor fut, ha egy objektum az összekötőhöz érkezik a megfelelő táblába való beszúráshoz.
- Frissítő lekérdezés: Ez a lekérdezés akkor fut, ha egy objektum a megfelelő táblában frissítés céljából csatlakozik az összekötőhöz.
- Lekérdezés törlése: Ez a lekérdezés akkor fut, ha egy objektum csatlakozik az összekötőhöz a megfelelő táblában való törléshez.
- A lekérdezés paraméterértékeként használt sémából kiválasztott attribútum, például
Insert into Employee (ID, Name) Values (@ID, @EmployeeName)
Fontos
A CRLF vagy az új sorkarakterek elválasztóként szolgálnak több utasítás között.
Minta többlépéses frissítési SQL-lekérdezés – az új sor karakterrel elválasztja az SQL-utasításokat:
update Employee set jobTitle=@JOBTITLE where BusinessEntityID=@BUSINESSENTITYID
insert into ChangeLog VALUES (@BUSINESSENTITYID)
Hibaelhárítás
- Az összekötő hibaelhárításához szükséges naplózás engedélyezéséről az Összekötők ETW-nyomkövetésének engedélyezése című témakörben talál további információt.