Allmän teknisk referens för SQL Connector
Den här artikeln beskriver den generiska SQL-anslutningsappen. Artikeln gäller för följande produkter:
- Microsoft Identity Manager 2016 (MIM2016)
- Microsoft Entra ID
För MIM2016 är anslutningsappen tillgänglig som en nedladdning från Microsoft Download Center.
Om du vill se den här anslutningsappen i praktiken kan du läsa artikeln Allmän SQL Connector steg för steg .
Kommentar
Microsoft Entra ID tillhandahåller nu en enkel agentbaserad lösning för att etablera användare till en SQL-databas, utan att behöva en MIM-synkroniseringsdistribution. Vi rekommenderar att du använder det för utgående användaretablering. Läs mer.
Översikt över den allmänna SQL-anslutningsappen
Med den generiska SQL-anslutningsappen kan du integrera synkroniseringstjänsten med ett databassystem som erbjuder ODBC-anslutning.
Ur ett övergripande perspektiv stöds följande funktioner av den aktuella versionen av anslutningsappen:
Funktion | Support |
---|---|
Ansluten datakälla | Anslutningsappen stöds med alla 64-bitars ODBC-drivrutiner*. Den har testats med följande: |
Scenarier | |
Operations | |
Schema |
Förutsättningar
Innan du använder anslutningsappen kontrollerar du att du har följande på synkroniseringsservern:
- Microsoft .NET 4.6.2 Framework eller senare
- 64-bitars ODBC-klientdrivrutiner
- Om du använder anslutningsappen för att kommunicera med Oracle 12c krävs Oracle Instant Client 12.2.0.1 eller senare med ODBC-paketet.
- Om du använder anslutningsappen för att kommunicera med Oracle 18c-23c kräver detta Oracle Instant Client 18-23 eller senare med ODBC-paketet, och NLS_LANG systemvariabeln måste anges för att stödja UTF8-tecken, t.ex. NLS_LANG=AMERICAN_AMERICA. AL32UTF8.
- Den här anslutningsappen använder SQL-förberedda instruktioner och flera instruktioner per transaktion. Vissa RDBM-system kan ha problem med sina ODBC-drivrutiner som rör transaktionshantering, förberedda SQL-instruktioner på serversidan och flera instruktioner inom samma transaktion. Konfigurera dina DSN-anslutningsalternativ för att se till att dessa instruktioner skickas korrekt till databasen.Till exempel behöver MySQL ODBC Driver version 8.0.32 alternativ NO_SSPS=1 och MULTI_STATEMENTS=1. Andra alternativ som "autocommit" eller "commit on successful operations only" kan påverka hur batchexporter hanteras. Kontakta databasadministratören för mer information. Om du vill felsöka problem under exporten anger du batchstorleken för export till 1 och aktiverar utförlig loggning av anslutningsappen.
Distribution av den här anslutningsappen kan kräva ändringar i konfigurationen av databasen samt konfigurationsändringar i MIM. För distributioner som omfattar integrering av MIM med en databasserver från tredje part i en produktionsmiljö rekommenderar vi att kunderna arbetar med sin databasleverantör eller en distributionspartner för hjälp, vägledning och support för den här integreringen.
Behörigheter i ansluten datakälla
Om du vill skapa eller utföra någon av de uppgifter som stöds i Generisk SQL-anslutningsapp måste du ha:
- db_datareader
- db_datawriter
Portar och protokoll
Information om vilka portar som krävs för att ODBC-drivrutinen ska fungera finns i databasleverantörens dokumentation.
Skapa en ny anslutningsapp
Om du vill skapa en allmän SQL-anslutningsapp väljer du Hanteringsagent och Skapa i Synkroniseringstjänsten. Välj den generiska SQL-anslutningsappen (Microsoft).
Anslutning
Anslutningsappen använder en ODBC DSN-fil för anslutning. Skapa DSN-filen med odbc-datakällor som finns på startmenyn under Administrationsverktyg. I det administrativa verktyget skapar du ett fil-DSN så att det kan tillhandahållas till anslutningsappen.
Skärmen Anslutning är den första när du skapar en ny allmän SQL-anslutningsapp. Du måste först ange följande information:
- DSN-filsökväg
- Autentisering
- Användarnamn
- Lösenord
Databasen bör ha stöd för någon av dessa autentiseringsmetoder:
- Windows-autentisering: Autentiseringsdatabasen använder Windows-autentiseringsuppgifterna för att verifiera användaren. Det angivna användarnamnet/lösenordet används för att autentisera med databasen. Det här kontot behöver behörigheter till databasen.
- SQL-autentisering: Autentiseringsdatabasen använder användarnamnet/lösenordet som definierats på skärmen Anslutning för att ansluta till databasen. Om du lagrar användarnamnet/pasword i DSN-filen har de autentiseringsuppgifter som anges på skärmen Anslutning företräde.
- Azure SQL Database-autentisering: Mer information finns i Ansluta till SQL Database via Microsoft Entra-autentisering.
DN är Fästpunkt: Om du väljer det här alternativet används DN också som fästpunktsattribut. Det kan användas för en enkel implementering men har också följande begränsning:
- Anslutningsappen stöder endast en objekttyp. Därför kan alla referensattribut endast referera till samma objekttyp.
Exporttyp: Ersätt objekt: När endast vissa attribut har ändrats under exporten exporteras hela objektet med alla attribut och ersätter det befintliga objektet.
Schema 1 (Identifiera objekttyper)
På den här sidan ska du konfigurera hur anslutningsappen ska hitta de olika objekttyperna i databasen.
Varje objekttyp visas som en partition och konfigureras ytterligare i Konfigurera partitioner och hierarkier.
Identifieringsmetod för objekttyp: Anslutningsappen stöder dessa metoder för identifiering av objekttyper.
- Fast värde: Du anger en lista över objekttyper med en kommaavgränsad lista. Exempel:
User,Group,Department
.
- Tabell/Vy/Lagrad procedur: Ange namnet på tabellen/vyn/den lagrade proceduren och sedan kolumnnamnet som innehåller listan över objekttyper. Om du använder en lagrad procedur anger du även parametrar för den i formatet [Name]:[Direction]:[Value]. Ange varje parameter på en separat rad (använd Ctrl +Retur för att hämta en ny rad).
- SQL-fråga: Med det här alternativet kan du ange en SQL-fråga som returnerar en enda kolumn med objekttyper, till exempel
SELECT [Column Name] FROM TABLENAME
. Den returnerade kolumnen måste vara av typen sträng (varchar).
Schema 2 (Identifiera attributtyper)
På den här sidan ska du konfigurera hur attributnamnen och typerna ska identifieras. Konfigurationsalternativen visas för varje objekttyp som identifierades på föregående sida.
Identifieringsmetod för attributtyp: Anslutningsappen stöder dessa identifieringsmetoder för attributtyper med varje identifierad objekttyp på skärmen Schema 1.
- Tabell/Vy/Lagrad procedur: Ange namnet på den tabell/vy/lagrade procedur som ska användas för att hitta attributnamnen. Om du använder en lagrad procedur anger du även parametrar för den i formatet [Name]:[Direction]:[Value]. Ange varje parameter på en separat rad (använd Ctrl +Retur för att hämta en ny rad). Om du vill identifiera attributnamnen i ett flervärdesattribut anger du en kommaavgränsad lista med tabeller eller vyer. Flervärdesscenarier stöds inte när den överordnade och underordnade tabellen har samma kolumnnamn.
- SQL-fråga: Med det här alternativet kan du ange en SQL-fråga som returnerar en enda kolumn med attributnamn, till exempel
SELECT [Column Name] FROM TABLENAME
. Den returnerade kolumnen måste vara av typen sträng (varchar).
Schema 3 (Definiera fästpunkt och DN)
På den här sidan kan du konfigurera fästpunkts- och DN-attribut för varje identifierad objekttyp. Du kan välja flera attribut för att göra fästpunkten unik.
Flervärdes- och booleska attribut visas inte.
Samma attribut kan inte användas för DN och fästpunkt, såvida inte DN är Fästpunkt har valts på sidan Anslutning.
Om DN är Fästpunkt har valts på sidan Anslutning krävs endast DN-attributet för den här sidan. Det här attributet används också som fästpunktsattribut.
Schema 4 (Definiera attributtyp, referens och riktning)
På den här sidan kan du konfigurera attributtypen, till exempel heltal, binär eller boolesk, och riktning för varje attribut. Alla attribut från sidschema 2 visas, inklusive flervärdesattribut.
- DataType: Används för att mappa attributtypen till de typer som synkroniseringsmotorn känner till. Standardvärdet är att använda samma typ som identifieras i SQL-schemat, men DateTime och Referens är inte lätta att identifiera. För dessa måste du ange DateTime eller Referens.
- Riktning: Du kan ange attributriktningen till Import, Export eller ImportExport. ImportExport är standard.
Anteckningar:
- Om en attributtyp inte kan identifieras av anslutningsappen använder den datatypen Sträng.
- Kapslade tabeller kan betraktas som databastabeller med en kolumn. Oracle lagrar raderna i en kapslad tabell i ingen särskild ordning. Men när du hämtar den kapslade tabellen till en PL/SQL-variabel får raderna efterföljande nedsänkta från och med 1. Det ger dig matrisliknande åtkomst till enskilda rader.
- VARRYS stöds inte i anslutningsappen.
Schema 5 (Definiera partition för referensattribut)
På den här sidan konfigurerar du för alla referensattribut som partition (objekttyp) ett attribut refererar till.
Om du använder DN är fästpunkt måste du använda samma objekttyp som den du refererar från. Du kan inte referera till en annan objekttyp.
Kommentar
Från och med uppdateringen mars 2017 finns det nu ett alternativ för "*" När det här alternativet väljs importeras alla möjliga medlemstyper.
Viktigt!
Från och med maj 2017 har alternativet "*" ändrats för att stödja import- och exportflödet. Om du vill använda det här alternativet bör din tabell/vy med flera värden ha ett attribut som innehåller objekttypen.
Om "*" är markerat måste även namnet på kolumnen med objekttypen anges.
Efter importen visas något som liknar bilden nedan:
Globala parametrar
Sidan Globala parametrar används för att konfigurera deltaimport, datum/tid-format och lösenordsmetod.
Den generiska SQL-anslutningsappen stöder följande metoder för deltaimport:
- Utlösare: Se Generera deltavyer med utlösare.
- Vattenstämpel: En allmän metod som kan användas med valfri databas. Vattenstämpelfrågan fylls i i förväg baserat på databasleverantören. En vattenstämpelkolumn måste finnas i varje tabell/vy som används. Den här kolumnen måste spåra infogningar och uppdateringar av tabellerna som och dess beroende (flervärdes- eller underordnade) tabeller. Klockorna mellan synkroniseringstjänsten och databasservern måste synkroniseras. Annars kan vissa poster i deltaimporten utelämnas.
Begränsning:- Vattenstämpelstrategin stöder inte borttagna objekt.
- Ögonblicksbild: (fungerar endast med Microsoft SQL Server) Genererar deltavyer med hjälp av ögonblicksbilder
- Ändringsspårning: (Fungerar endast med Microsoft SQL Server) Om Ändringsspårning
Begränsningar:- Attributet Anchor &DN måste vara en del av primärnyckeln för det markerade objektet i tabellen.
- SQL-frågan stöds inte under import och export med Ändringsspårning.
Ytterligare parametrar: Ange tidszonen för databasservern som anger var databasservern finns. Det här värdet används för att stödja de olika formaten för datum- och tidsattribut.
Anslutningsappen lagrar alltid datum och datum i UTC-format. För att kunna konvertera datum och tider korrekt måste tidszonen för databasservern och det format som används anges. Formatet ska uttryckas i .NET-format.
Under exporten måste varje datumtidsattribut anges till anslutningsappen i UTC-tidsformat.
Lösenordskonfiguration: Anslutningsappen tillhandahåller funktioner för lösenordssynkronisering och har stöd för att ange och ändra lösenord.
Anslutningsappen innehåller två metoder för att stödja lösenordssynkronisering:
- Lagrad procedur: Den här metoden kräver två lagrade procedurer för att stödja Ange och ändra lösenord. Ange alla parametrar för att lägga till och ändra lösenordsåtgärden i Ange SP för lösenord respektive Ändra SP-parametrar för lösenord enligt exemplet nedan.
- Lösenordstillägg: Den här metoden kräver DLL för lösenordstillägg (du måste ange tilläggets DLL-namn som implementerar gränssnittet IMAExtensible2Password ). Sammansättningen av lösenordstillägg måste placeras i tilläggsmappen så att anslutningsappen kan läsa in DLL:en vid körning.
Du måste också aktivera lösenordshantering på sidan Konfigurera tillägg .
Konfigurera partitioner och hierarkier
På sidan partitioner och hierarkier väljer du alla objekttyper. Varje objekttyp är en egen partition.
Du kan också åsidosätta de värden som definierats på sidan Anslutning eller Globala parametrar .
Konfigurera ankare
Den här sidan är skrivskyddad eftersom fästpunkten redan har definierats. Det markerade fästpunktsattributet läggs alltid till med objekttypen för att säkerställa att det förblir unikt mellan objekttyper.
Konfigurera körstegsparameter
De här stegen konfigureras på körningsprofilerna i anslutningsappen. Dessa konfigurationer utför det faktiska arbetet med att importera och exportera data.
Fullständig import och deltaimport
Allmän SQL Connector stöder fullständig import och deltaimport med hjälp av följande metoder:
- Register
- Visa
- Lagrad procedur
- SQL-fråga
Tabell/vy
Om du vill importera flervärdesattribut för ett objekt måste du ange tabell-/vynamnet i Namn på flervärdestabell/vyer och respektive kopplingsvillkor i kopplingsvillkoret med den överordnade tabellen. Om det finns fler än en tabell med flera värden i datakällan kan du använda union till en enda vy.
Viktigt!
Den generiska SQL-hanteringsagenten kan bara fungera med en tabell med flera värden. Lägg inte till flervärdestabellens namn/vyer mer än ett namn på tabellen. Det är begränsningen för generisk SQL.
Exempel: Du vill importera objektet Employee och alla dess flervärdesattribut. Det finns två tabeller med namnet Employee (huvudtabell) och Department (multi-valued). Gör följande:
- Skriv Anställd i tabell/vy/SP.
- Skriv Avdelning i Namn på tabell/vyer med flera värden.
- Skriv kopplingsvillkoret mellan medarbetare och avdelning i Kopplingsvillkor, till exempel
Employee.DEPTID=Department.DepartmentID
.
Lagrade procedurer
- Om du har mycket data rekommenderar vi att du implementerar sidnumrering med dina lagrade procedurer.
- För att den lagrade proceduren ska ha stöd för sidnumrering måste du ange Startindex och Slutindex. Se: Effektivt växling genom stora mängder data.
- @StartIndex och @EndIndex ersätts vid körningstillfället med respektive sidstorleksvärde konfigurerat på sidan Konfigurera steg . När anslutningsappen till exempel hämtar första sidan och sidstorleken har angetts till 500 skulle det i sådana fall @StartIndex vara 1 och @EndIndex 500. Dessa värden ökar när anslutningsappen hämtar efterföljande sidor och ändrar &@EndIndex-@StartIndexvärdet.
- Om du vill köra parameteriserad lagrad procedur anger du parametrarna i
[Name]:[Direction]:[Value]
format. Ange varje parameter på en separat rad (Använd Ctrl + Retur för att hämta en ny rad). - Allmän SQL-anslutningsapp stöder även importåtgärder från länkade servrar i Microsoft SQL Server. Om information ska hämtas från en tabell på en länkad server ska tabell anges i formatet:
[ServerName].[Database].[Schema].[TableName]
- Allmän SQL Connector stöder endast de objekt som har liknande struktur (både aliasnamn och datatyp) mellan körningsstegsinformation och schemaidentifiering. Om det valda objektet från schemat och den angivna informationen i körningssteget är annorlunda kan SQL Connector inte stödja den här typen av scenarier.
SQL-fråga
Viktigt!
CRLF eller nytt radtecken fungerar som en avgränsare mellan flera instruktioner.
Sql-exempelfråga med sidnumrering – felaktig fråga fungerar inte eftersom det nya radtecknet används:
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
Exempel på SQL-fråga med sidnumrering – rätt fråga:
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
- Frågor för flera resultatuppsättningar stöds inte.
- SQL-frågan stöder sidnumreringen och anger StartIndex och End Index som en variabel som stöd för sidnumrering.
Deltaimport
DeltaImportkonfiguration kräver lite mer konfiguration jämfört med fullständig import.
- Om du väljer metoden Utlösare eller ögonblicksbild för att spåra deltaändringar anger du historiktabellen eller ögonblicksbilddatabasen i rutan Historiktabell eller Databasnamn för ögonblicksbilder.
- Du måste också ange kopplingsvillkor mellan historiktabellen och den överordnade tabellen, till exempel
Employee.ID=History.EmployeeID
- Om du vill spåra transaktionen i den överordnade tabellen från historiktabellen måste du ange det kolumnnamn som innehåller åtgärdsinformationen (Lägg till/uppdatera/ta bort).
- Om du väljer Vattenstämpel för att spåra deltaändringar anger du det kolumnnamn som innehåller åtgärdsinformationen i Kolumnnamn för vattenmarkering.
- Attributkolumnen ändringstyp krävs för ändringstypen. Den här kolumnen mappar en ändring som sker i den primära tabellen eller tabellen med flera värden till en ändringstyp i deltavyn. Den här kolumnen kan innehålla Modify_Attribute ändringstyp för ändring på attributnivå eller ändringstypen Lägg till, Ändra eller Ta bort för en ändringstyp på objektnivå. Om det är något annat än standardvärdet Lägg till, Ändra eller Ta bort kan du definiera dessa värden med det här alternativet.
Export
Allmän SQL Connector stöder export med hjälp av fyra metoder som stöds, till exempel:
- Register
- Visa
- Lagrad procedur
- SQL-fråga
Tabell/vy
Om du väljer alternativet Tabell/Visa genererar anslutningsappen respektive frågor för att exportera.
Lagrade procedurer
Om du väljer alternativet Lagrad procedur kräver Export tre olika lagrade procedurer för att utföra åtgärder för att infoga/uppdatera/ta bort.
- Lägg till SP-namn: Detta SP körs om något objekt kommer till anslutningsappen för infogning i respektive tabell.
- Uppdatera SP-namn: Det här SP:et körs om något objekt kommer till anslutningsappen för uppdatering i respektive tabell.
- Ta bort SP-namn: Detta SP körs om något objekt kommer till anslutningsappen för borttagning i respektive tabell.
- Attribut som valts från schemat som används som ett parametervärde till den lagrade proceduren. Till exempel
@EmployeeName: INPUT: EmployeeName
(EmployeeName har valts i anslutningsschemat och anslutningsappen ersätter respektive värde vid export) - Om du vill köra en parametriserad lagrad procedur anger du parametrar i
[Name]:[Direction]:[Value]
format. Ange varje parameter på en separat rad (Använd Ctrl + Retur för att hämta en ny rad).
SQL-fråga
Om du väljer SQL-frågealternativet kräver Export tre olika frågor för att utföra åtgärder för att infoga/uppdatera/ta bort.
- Infoga fråga: Den här frågan körs om något objekt kommer till anslutningsappen för infogning i respektive tabell.
- Uppdateringsfråga: Den här frågan körs om något objekt kommer till anslutningsappen för uppdatering i respektive tabell.
- Ta bort fråga: Den här frågan körs om något objekt kommer till anslutningsappen för borttagning i respektive tabell.
- Attribut som valts från schemat som används som ett parametervärde till frågan, till exempel
Insert into Employee (ID, Name) Values (@ID, @EmployeeName)
Viktigt!
CRLF eller nytt radtecken fungerar som en avgränsare mellan flera instruktioner.
Exempel på sql-fråga med flera steg – det nya radtecknet används för att separera SQL-uttryck:
update Employee set jobTitle=@JOBTITLE where BusinessEntityID=@BUSINESSENTITYID
insert into ChangeLog VALUES (@BUSINESSENTITYID)
Felsökning
- Information om hur du aktiverar loggning för att felsöka anslutningsappen finns i Så här aktiverar du ETW-spårning för anslutningsappar.