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:
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.
- Inicie la utilidad de administración de ODBC en el servidor:
- Seleccione la pestaña DSN de archivo. Haga clic en Agregar....
- El controlador estándar funciona bien, así que selecciónelo y haga clic en Siguiente>.
- Asigne un nombre al archivo, como GenericSQL.
- Haga clic en Finalizar
- 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.
- Seleccione la autenticación de SQL. En este caso, usaremos Autenticación de Windows.
- Proporcione el nombre de la base de datos de ejemplo, GSQLDEMO.
- Mantenga las opciones predeterminadas de esta pantalla. Haga clic en Finalizar
- Para comprobar que todo funciona según lo esperado, haga clic en Probar origen de datos.
- Asegúrese de que la prueba se ha realizado correctamente.
- Ahora, el archivo de configuración de ODBC debe de aparecer en DSN de archivo.
Ya tenemos el archivo que necesitamos y podemos comenzar a crear el conector.
Creación del conector de SQL genérico
- En la interfaz de usuario de Synchronization Service Manager, seleccione Conectores y Crear. Seleccione SQL genérico (Microsoft) y asígnele un nombre descriptivo.
- 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.
- En este tutorial, hemos optado por una opción sencilla y hemos tenido en cuenta que hay dos tipos de objetos, User y Group.
- 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 [].
- 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).
- 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.
- 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.
- 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.
- En la página Configurar particiones y jerarquías , seleccione ambos tipos de objeto.
- 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
- 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).
- Seleccione el tipo Full Import (Stage Only)(Importación completa [solo fase]).
- Seleccione la partición OBJECT=User.
- 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.
- 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
- Opcional: si lo desea, puede configurar perfiles de ejecución adicionales. En este tutorial se usa solo la importación completa.
- 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.
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