Condividi tramite


Procedura dettagliata per la creazione del connettore Generic SQL

Questo argomento è una guida dettagliata. Verrà creato un semplice database delle risorse umane di esempio che sarà usato per importare alcuni utenti con la relativa appartenenza ai gruppi.

Nota

Microsoft Entra ID offre ora una soluzione semplificata basata su agente per il provisioning degli utenti in un database SQL, senza la necessità di una distribuzione di sincronizzazione MIM. È consigliabile usarlo per il provisioning utenti in uscita. Altre informazioni

Preparare il database di esempio

In un server che esegue SQL Server eseguire lo script SQL disponibile nell'Appendice A. Questo script crea un database di esempio con il nome GSQLDEMO. Il modello a oggetti per il database creato sarà simile a questa immagine:
Modello a oggetti

Creare anche un utente da usare per connettersi al database. In questa procedura dettagliata l'utente si chiama FABRIKAM\SQLUser e si trova nel dominio.

Creare il file di connessione ODBC

Il connettore Generic SQL usa ODBC per connettersi al server remoto. È necessario innanzitutto creare un file con le informazioni di connessione ODBC.

  1. Avviare l'utilità di gestione di ODBC sul server:
    Screenshot che mostra un campo di ricerca con O D B C immesso.
  2. Selezionare la scheda DSN su file. Fare clic su Aggiungi.
    Screenshot dell'utilità di gestione O D B C con la scheda File D S N selezionata.
  3. Il driver out-of-box funziona correttamente, quindi selezionarlo e fare clic su Avanti>.
    Screenshot che mostra le opzioni del driver per la nuova origine dati.
  4. Assegnare un nome al file, ad esempio GenericSQL.
    Screenshot che mostra un esempio di nuovo nome file immesso nel campo e un pulsante Avanti.
  5. Fare clic su Fine.
    Screenshot che mostra i dettagli della nuova origine dati e un pulsante Fine.
  6. È ora necessario configurare la connessione. Assegnare una descrizione appropriata all'origine dati e specificare il nome del server che esegue SQL Server.
    Screenshot che mostra la configurazione guidata con una descrizione di esempio e un nome del server e un pulsante Avanti.
  7. Selezionare la modalità di autenticazione con SQL. In questo caso si userà l'autenticazione di Windows.
    Screenshot che mostra il passaggio di autenticazione con l'opzione di autenticazione integrata di Windows selezionata e un pulsante Avanti.
  8. Specificare il nome del database di esempio, GSQLDEMO.
    Screenshot che mostra il nome del database immesso nel campo del database e un pulsante Avanti.
  9. In questa schermata mantenere tutte le selezioni predefinite. Fare clic su Fine.
    Screenshot che mostra le impostazioni predefinite nel passaggio finale della procedura guidata e un pulsante Fine.
  10. Per verificare che tutto funzioni come previsto, fare clic su Verifica origine dati.
    Screenshot che mostra i dettagli di configurazione della nuova origine dati O D B C e un pulsante Origine dati di test.
  11. Assicurarsi che la verifica abbia esito positivo.
    Screenshot che mostra i risultati del test e un pulsante O K.
  12. Il file di configurazione ODBC dovrebbe essere ora visibile in DSN su file.
    Screenshot dell'utilità di gestione O D B C con la scheda File D S N selezionata e il nuovo file di configurazione O D B C elencato.

Il file necessario è ora disponibile e si può iniziare a creare il connettore.

Creare il connettore Generic SQL

  1. Nell'interfaccia utente di Synchronization Service Manager selezionare Connettori e Crea. Selezionare Generic SQL (Microsoft) e assegnargli un nome descrittivo.
    Screenshot che mostra la creazione guidata connettore con il connettore selezionato e un pulsante Avanti.
  2. Trovare il file DSN creato nella sezione precedente e caricarlo nel server. Immettere le credenziali per connettersi al database.
    Screenshot che mostra il file DS N con le credenziali immesse e un pulsante Avanti.
  3. In questa procedura dettagliata si considera un caso semplificato in cui esistono due tipi di oggetti, User e Group. Screenshot che mostra i due tipi di oggetto immessi nel campo elenco valori fissi e un pulsante Avanti.
  4. Il connettore dovrà trovare gli attributi esaminando la tabella. Poiché Users è una parola riservata in SQL, occorre specificarla fra parentesi quadre [ ].
    Screenshot che mostra il valore di rilevamento attributi della tabella e del valore di tabella degli utenti e un pulsante Avanti.
  5. È ora necessario definire l'attributo di ancoraggio e l'attributo DN. Per Userssi usa la combinazione dei due attributi Username ed EmployeeID. Per Groupsi usa GroupName, non molto plausibile in un caso reale, ma adeguato per questa procedura dettagliata. Screenshot che mostra il nome utente, il dipendente D e il nome del gruppo con un pulsante Avanti.
  6. Non tutti i tipi di attributo possono essere rilevati in un database SQL. In particolare, non può essere rilevato il tipo di attributo di riferimento. Per il tipo di oggetto Group è necessario cambiare OwnerID e MemberID a cui fare riferimento.
    Screenshot che mostra i campi id proprietario e ID membro aggiornati e un pulsante Avanti.
  7. Gli attributi selezionati come attributi di riferimento nel passaggio precedente richiedono il tipo di oggetto cui questi valori fanno riferimento. In questo caso si tratta del tipo di oggetto User.
    Screenshot che mostra il tipo di oggetto selezionato e un pulsante Avanti.
  8. Nella pagina Global Parameters (Parametri globali) selezionare Watermark (Limite) come strategia differenziale. Digitare anche il formato di data/ora yyyy-MM-dd HH:mm:ss(aaaa-MM-gg HH:mm:ss). Screenshot che mostra i campi per la strategia differenziale e il formato di data e ora e un pulsante Avanti.
  9. Nella pagina Configure Partitions and Hierarchies (Configura partizioni e gerarchie) selezionare entrambi i tipi di oggetto. Screenshot che mostra entrambi i tipi di oggetto selezionati e il pulsante Avanti.
  10. In Select Object Types (Seleziona tipi di oggetto) e Select Attributes (Seleziona attributi) selezionare entrambi i tipi di oggetto e tutti gli attributi. Nella pagina Configure Anchors (Configura ancoraggi) fare clic su Finish (Fine).

Creare i profili di esecuzione

  1. Nell'interfaccia utente di Synchronization Service Manager selezionare Connectors (Connettori) e Configure Run Profiles (Configura profili di esecuzione). Fare clic su New Profile(Nuovo profilo). Si inizierà con Full Import(Importazione completa).
    Screenshot che mostra la procedura guidata Configura profilo esecuzione con Importazione completa immessa nel campo Nome e un pulsante Avanti.
  2. Selezionare il tipo Full Import (Stage Only)(Importazione completa - solo staging).
    Screenshot che mostra il tipo selezionato e un pulsante Avanti.
  3. Selezionare la partizione OBJECT=User.
    Screenshot che mostra la partizione selezionata e un pulsante Avanti.
  4. Selezionare Table (Tabella) e digitare [USERS]. Scorrere fino alla sezione del tipo di oggetto multivalore e immettere i dati riportati di seguito. Selezionare Finish (Fine) per salvare il passaggio.
    Screenshot che mostra il metodo dell'operazione Tabella selezionata e gli utenti nel campo tabella.
    Screenshot che mostra i valori del tipo di oggetto multivalore immessi per nome e condizione di join.
  5. Selezionare Nuovo passaggio. Questa volta selezionare OBJECT=Group. Nell'ultima pagina usare la configurazione illustrata nell'immagine. Fare clic su Fine.
    Screenshot che mostra il metodo dell'operazione Table selezionato e il gruppo nel campo della tabella.
    Screenshot che mostra i valori del tipo di oggetto immessi per il nome della tabella e della condizione di join.
  6. Facoltativo: se si vuole, è possibile configurare altri profili di esecuzione. In questa procedura dettagliata si usa solo l'importazione completa.
  7. Fare clic su OK per terminare la modifica dei profili di esecuzione.

Aggiungere alcuni dati di prova e testare l'importazione

Immettere alcuni dati di prova nel database di esempio. Quando si è pronti, selezionare Run (Esegui) e Full import (Importazione completa).

In questo esempio si ottiene un utente con due numeri di telefono e un gruppo con alcuni membri.
Screenshot dei dati che mostrano un utente con due numeri di telefono.
Screenshot dei dati che mostrano un gruppo con alcuni membri.

Appendice A

Script SQL per la creazione del database di esempio

---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