Conector de SQL genérico paso a paso

Este tema es una guía paso a paso. Crea una sencilla base de datos de ejemplo de Recursos Humanos y la usa para importar algunos usuarios y su pertenencia a grupos.

Nota

Microsoft Entra id. ahora proporciona una solución basada en agente ligero para aprovisionar usuarios en una base de datos SQL, sin necesidad de una implementación de sincronización de MIM. Se recomienda usarlo para el aprovisionamiento de usuarios salientes. Más información.

Preparación de la base de datos de ejemplo

En un servidor que ejecuta SQL Server, ejecute el script SQL que se encuentra en el Apéndice A. Este script crea una base de datos de ejemplo con el nombre GSQLDEMO. El modelo de objetos de la base de datos creada es similar al de esta imagen:
Modelo de objetos

Cree también el usuario que quiera usar para conectarse a la base de datos. En este tutorial, el usuario se llama FABRIKAM\SQLUser y está ubicado en el dominio.

Creación del archivo de conexión de ODBC

El conector de SQL genérico usa ODBC para conectarse al servidor remoto. Primero debemos crear un archivo con la información de conexión de ODBC.

  1. Inicie la utilidad de administración de ODBC en el servidor:
    Captura de pantalla que muestra un campo de búsqueda con O D B C escrito.
  2. Seleccione la pestaña DSN de archivo. Haga clic en Agregar....
    Captura de pantalla de la utilidad de administración de O D B C con la pestaña Archivo D S N seleccionada.
  3. El controlador estándar funciona bien, así que selecciónelo y haga clic en Siguiente>.
    Captura de pantalla que muestra las opciones del controlador para el nuevo origen de datos.
  4. Asigne un nombre al archivo, como GenericSQL.
    Captura de pantalla que muestra un nuevo nombre de archivo de ejemplo escrito en el campo y un botón Siguiente.
  5. Haga clic en Finalizar
    Captura de pantalla que muestra los nuevos detalles del origen de datos y un botón Finalizar.
  6. Ahora configuraremos la conexión. Escriba una buena descripción para el origen de datos, así como el nombre del servidor que ejecuta SQL Server.
    Captura de pantalla que muestra el Asistente para configuración con una descripción de ejemplo y el nombre del servidor y un botón Siguiente.
  7. Seleccione la autenticación de SQL. En este caso, usaremos Autenticación de Windows.
    Captura de pantalla que muestra el paso de autenticación con la opción de autenticación integrada de Windows seleccionada y un botón Siguiente.
  8. Proporcione el nombre de la base de datos de ejemplo, GSQLDEMO.
    Captura de pantalla que muestra el nombre de la base de datos especificado en el campo de base de datos y un botón Siguiente.
  9. Mantenga las opciones predeterminadas de esta pantalla. Haga clic en Finalizar
    Captura de pantalla que muestra la configuración predeterminada en el paso final del asistente y un botón Finalizar.
  10. Para comprobar que todo funciona según lo esperado, haga clic en Probar origen de datos.
    Captura de pantalla que muestra los detalles de configuración del nuevo origen de datos de O D B C y un botón Probar origen de datos.
  11. Asegúrese de que la prueba se ha realizado correctamente.
    Captura de pantalla que muestra los resultados de la prueba y un botón O K.
  12. Ahora, el archivo de configuración de ODBC debe de aparecer en DSN de archivo.
    Captura de pantalla de la utilidad de administración de O D B C con la pestaña Archivo D S N seleccionada y el nuevo archivo de configuración de O D B C enumerado.

Ya tenemos el archivo que necesitamos y podemos comenzar a crear el conector.

Creación del conector de SQL genérico

  1. En la interfaz de usuario de Synchronization Service Manager, seleccione Conectores y Crear. Seleccione SQL genérico (Microsoft) y asígnele un nombre descriptivo.
    Captura de pantalla que muestra el Asistente para crear conector con el conector seleccionado y un botón Siguiente.
  2. Busque el archivo DSN que ha creado en la sección anterior y cárguelo en el servidor. Proporcione las credenciales para conectarse a la base de datos.
    Captura de pantalla que muestra el archivo D S N con credenciales especificadas y un botón Siguiente.
  3. En este tutorial, hemos optado por una opción sencilla y hemos tenido en cuenta que hay dos tipos de objetos, User y Group. Captura de pantalla que muestra los dos tipos de objeto especificados en el campo de lista de valores fijos y un botón Siguiente.
  4. Para encontrar los atributos, queremos que el conector los detecte examinando la propia tabla. Puesto que Users es una palabra reservada en SQL, debemos escribirla entre corchetes [].
    Captura de pantalla que muestra el valor de detección de atributos de la tabla y el valor de tabla de los usuarios y un botón Siguiente.
  5. Ahora definiremos el atributo de delimitador y el atributo DN. Para Users, usamos la combinación de los atributos username y EmployeeID. Para Group, usamos GroupName (aunque no sea muy realista para la vida real, para este tutorial funciona). Captura de pantalla que muestra el nombre de usuario, el identificador de empleado y el nombre del grupo, con un botón Siguiente.
  6. No todos los tipos de atributo se pueden detectar en una base de datos SQL, como sucede con el tipo de atributo de referencia. Para el tipo de objeto de grupo, necesitamos cambiar OwnerID y MemberID de referencia.
    Captura de pantalla que muestra los campos id. de propietario y miembro actualizados y un botón Siguiente.
  7. Los atributos que hemos seleccionado como atributos de referencia en el paso anterior requieren el tipo de objeto al que hacen referencia estos valores. En nuestro caso, el tipo de objeto de usuario.
    Captura de pantalla que muestra el tipo de objeto seleccionado y un botón Siguiente.
  8. En la página Parámetros globales, seleccione Marca de agua como estrategia diferencial. Escriba también en el formato de fecha y hora aaaa-MM-dd HH:mm:ss. Captura de pantalla que muestra los campos de la estrategia delta y el formato de fecha y hora, y un botón Siguiente.
  9. En la página Configurar particiones y jerarquías , seleccione ambos tipos de objeto. Captura de pantalla que muestra los dos tipos de objeto seleccionados y el botón Siguiente.
  10. En Seleccionar tipos de objeto y Seleccionar atributos, seleccione los dos tipos de objeto y todos los atributos. En la página Configurar delimitadores, haga clic en Finalizar.

Creación de perfiles de ejecución

  1. En la interfaz de usuario de Synchronization Service Manager, seleccione Connectors (Conectores) y Configure Run Profiles (Configurar perfiles de ejecución). Haga clic en Nuevo perfil. Comenzaremos por Full Import(Importación completa).
    Captura de pantalla que muestra el Asistente para configurar perfil de ejecución con importación completa especificada en el campo Nombre y un botón Siguiente.
  2. Seleccione el tipo Full Import (Stage Only)(Importación completa [solo fase]).
    Captura de pantalla que muestra el tipo seleccionado y un botón Siguiente.
  3. Seleccione la partición OBJECT=User.
    Captura de pantalla que muestra la partición seleccionada y un botón Siguiente.
  4. Seleccione Table (Tabla) y escriba [USERS]. Desplácese hacia abajo hasta la sección de tipo de objeto con varios valores y escriba los datos como en la imagen siguiente. Seleccione Finish (Finalizar) para guardar la fase.
    Captura de pantalla que muestra la tabla del método de operación seleccionada y los usuarios en el campo de tabla.
    Captura de pantalla que muestra los valores de tipo de objeto multivalor especificados para la condición de nombre y combinación.
  5. Seleccione Nuevo paso. Esta vez, seleccione OBJECT=Group. En la última página, use la configuración como se muestra en la imagen siguiente. Haga clic en Finalizar
    Captura de pantalla que muestra el método de operación Tabla seleccionado y grupo en el campo de tabla.
    Captura de pantalla que muestra los valores de tipo de objeto especificados para el nombre de la tabla y la condición de combinación.
  6. Opcional: si lo desea, puede configurar perfiles de ejecución adicionales. En este tutorial se usa solo la importación completa.
  7. Haga clic en OK (Aceptar) para terminar de cambiar los perfiles de ejecución.

Adición de algunos datos de prueba y prueba de la importación

Rellene algunos datos de prueba en la base de datos de ejemplo. Cuando haya terminado, seleccione Run (Ejecutar) y Full import (Importación completa).

Este usuario tiene dos números de teléfono y un grupo con algunos miembros.
Captura de pantalla de los datos que muestran un usuario con dos números de teléfono.
Captura de pantalla de los datos que muestran un grupo con algunos miembros.

Apéndice A

Script de SQL para crear la base de datos de ejemplo

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