Passo a passo do Conector do SQL Genérico
Este tópico é um guia passo a passo. Ele cria um banco de dados de RH de exemplo simples e o usará para a importação de alguns usuários e sua associação a um grupo.
Observação
Microsoft Entra ID agora fornece uma solução baseada em agente leve para provisionar usuários em um banco de dados SQL, sem a necessidade de uma implantação de sincronização do MIM. É recomendável usá-lo para provisionamento de usuário de saída. Saiba mais.
Preparar o banco de dados de exemplo
Em um servidor que executa SQL Server, execute o script SQL encontrado no Apêndice A. Esse script cria um banco de dados de exemplo com o nome GSQLDEMO. O modelo de objeto para o banco de dados criado é semelhante a esta imagem:
Também crie um usuário que deseja usar para se conectar ao banco de dados. Neste passo a passo, o usuário é chamado FABRIKAM\SQLUser e está localizado no domínio.
Criar o arquivo de conexão ODBC
O Conector do SQL Genérico está usando o ODBC para se conectar ao servidor remoto. Primeiro, precisamos criar um arquivo com as informações de conexão ODBC.
- Inicie o utilitário de gerenciamento ODBC no servidor:
- Selecione a guia DSN de Arquivo. Clique em Adicionar....
- O driver pronto para uso funciona bem, portanto, selecione-o e clique em Avançar>.
- Nomeie o arquivo, como GenericSQL.
- Clique em Concluir.
- Hora de configurar a conexão. Forneça uma boa descrição à fonte de dados e o nome do servidor que executa o SQL Server.
- Selecione como deseja se autenticar com o SQL. Nesse caso, usamos a Autenticação do Windows.
- Forneça o nome do banco de dados de exemplo, GSQLDEMO.
- Mantenha todas as opções como padrão nesta tela. Clique em Concluir.
- Para verificar se tudo está funcionando como esperado, clique em Testar Fonte de Dados.
- Verifique se o teste foi bem-sucedido.
- O arquivo de configuração ODBC agora deverá estar visível no DSN de Arquivo.
Agora temos o arquivo necessário e podemos começar a criar o Conector.
Criar o Conector do SQL Genérico
- Na interface de usuário do Synchronization Service Manager, selecione Conectores e Criar. Selecione SQL Genérico (Microsoft) e dê a ele um nome descritivo.
- Encontre o arquivo DSN criado na seção anterior e o carregue no servidor. Forneça as credenciais para se conectar ao banco de dados.
- Neste passo a passo, estamos facilitando nosso trabalho dizendo que há dois tipos de objeto, User e Group.
- Para encontrar os atributos, queremos que o Conector os detecte observando a própria tabela. Já que Users é uma palavra reservada no SQL, precisamos fornecê-la entre colchetes [ ].
- Hora de definir o atributo de âncora e o atributo DN. Para Users, usamos a combinação dos dois atributos username e EmployeeID. Para Group, usamos GroupName (não realista na vida real, mas funcionará nesse passo a passo).
- Nem todos os tipos de atributo podem ser detectados em um banco de dados SQL. Em particular, o tipo de atributo de referência não tem essa capacidade. Para o tipo de objeto de grupo, precisamos alterar a OwnerID e a MemberID para fazer referência a elas.
- Os atributos que selecionamos como referência na etapa anterior exigem o tipo de objeto para o qual esses valores são uma referência. Em nosso caso, o tipo de objeto de Usuário.
- Na página Parâmetros Globais, selecione Marca-d'água como a estratégia delta. Digite também o formato de data/hora aaaa-MM-dd HH:mm:ss.
- Na página Configurar Partições e Hierarquias, escolha ambos os tipos de objeto.
- Em Selecionar Tipos de Objeto e Selecionar Atributos, selecione os dois tipos de objeto e todos os atributos. Na página Configurar Âncoras, clique em Concluir.
Criar perfis de execução
- Na interface do usuário do Synchronization Service Manager, selecione Conectores e Configurar Perfis de Execução. Clique em Novo Perfil. Começamos com Importação Completa.
- Selecione o tipo Importação Completa (Somente Estágio).
- Selecione a partição OBJECT=User.
- Selecione Tabela e digite [USERS]. Role para baixo até a seção de tipo de objeto com vários valores e insira os dados como na imagem a seguir. Selecione Concluir para salvar a etapa.
- Selecione Nova Etapa. Desta vez, selecione OBJECT=Group. Na última página, use a configuração como na imagem a seguir. Clique em Concluir.
- Opcional: se quiser, você poderá configurar perfis de execução adicionais. Para este passo a passo, foi usada apenas a Importação Completa.
- Clique em OK para concluir a alteração de perfis de execução.
Adicionar alguns dados de teste e testar a importação
Preencha alguns dados de teste no banco de dados de exemplo. Quando estiver pronto, selecione Executar e Importação completa.
Aqui está um usuário com dois números de telefone e um grupo com alguns membros.
Apêndice A
Script SQL para criar o banco de dados de exemplo
---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