Conector do SQL genérico passo a passo
Este tópico é um guia passo a passo. Cria uma base de dados de RH de exemplo simples e utiliza-a para importar alguns utilizadores e a respetiva associação a grupos.
Nota
Microsoft Entra ID fornece agora uma solução baseada em agente simples para aprovisionar utilizadores numa base de dados SQL, sem precisar de uma implementação de sincronização do MIM. Recomendamos que o utilize para o aprovisionamento de utilizadores de saída. Saiba mais.
Preparar a base de dados de exemplo
Num servidor com SQL Server, execute o script SQL encontrado no Apêndice A. Este script cria uma base de dados de exemplo com o nome GSQLDEMO. O modelo de objeto da base de dados criada tem o seguinte aspeto:
Crie também um utilizador que pretenda utilizar para ligar à base de dados. Nestas instruções, o utilizador chama-se FABRIKAM\SQLUser e está localizado no domínio.
Criar o ficheiro de ligação ODBC
O Conector SQL Genérico está a utilizar o ODBC para ligar ao servidor remoto. Primeiro, temos de criar um ficheiro com as informações de ligação ODBC.
- Inicie o utilitário de gestão ODBC no servidor:
- Selecione o separador Ficheiro DSN. Clique em Adicionar....
- O controlador inicial funciona bem, por isso selecione-o e clique em Seguinte>.
- Atribua um nome ao ficheiro, como GenericSQL.
- Clique em Concluir.
- Hora de configurar a ligação. Dê uma boa descrição à origem de dados e indique o nome do servidor que está a executar SQL Server.
- Selecione como autenticar com o SQL. Neste caso, utilizamos a Autenticação do Windows.
- Indique o nome da base de dados de exemplo GSQLDEMO.
- Mantenha tudo predefinido neste ecrã. Clique em Concluir.
- Para verificar se está tudo a funcionar conforme esperado, clique em Testar Origem de Dados.
- Certifique-se de que o teste foi efetuado com êxito.
- O ficheiro de configuração ODBC deverá agora estar visível no DSN de Ficheiros.
Agora temos o ficheiro de que precisamos e podemos começar a criar o Conector.
Criar o Conector SQL Genérico
- Na IU do Service Manager de Sincronização, selecione Conectores e Criar. Selecione SQL Genérico (Microsoft) e atribua-lhe um nome descritivo.
- Localize o ficheiro DSN que criou na secção anterior e carregue-o para o servidor. Forneça as credenciais para ligar à base de dados.
- Nestas instruções, estamos a facilitar-nos a vida e a dizer que existem dois tipos de objetos: Utilizador e Grupo.
- Para localizar os atributos, queremos que o Conector detete esses atributos ao observar a própria tabela. Uma vez que Utilizadores é uma palavra reservada no SQL, temos de a fornecer entre parênteses retos [ ].
- Tempo para definir o atributo de âncora e o atributo DN. Para Utilizadores, utilizamos a combinação dos dois atributos nome de utilizador e EmployeeID. Para grupo, utilizamos GroupName (não realista na vida real, mas para estas instruções funciona).
- Nem todos os tipos de atributos podem ser detetados numa base de dados SQL. O tipo de atributo de referência em particular não pode. Para o tipo de objeto de grupo, temos de alterar o OwnerID e o MemberID para referência.
- Os atributos que selecionámos como atributos de referência no passo anterior requerem o tipo de objeto a que estes valores são uma referência. No nosso caso, o tipo de objeto Utilizador.
- Na página Parâmetros Globais, selecione Marca d'água como estratégia delta. Escreva também no formato de data/hora aaaa-MM-dd HH:mm:ss.
- Na página Configurar Partições e Hierarquias, selecione ambos os tipos de objeto.
- Em Selecionar Tipos de Objeto e Selecionar Atributos, selecione os tipos de objeto e todos os atributos. Na página Configurar Âncoras , clique em Concluir.
Criar Perfis de Execução
- Na IU do Service Manager de Sincronização, selecione Conectores e Configurar Perfis de Execução. Clique em Novo Perfil. Começamos com a Importação Completa.
- Selecione o tipo Importação Completa (Apenas Fase).
- Selecione a partição OBJECT=User.
- Selecione Tabela e escreva [UTILIZADORES]. Desloque-se para baixo até à secção tipo de objeto de valores múltiplos e introduza os dados como na imagem seguinte. Selecione Concluir para guardar o passo.
- Selecione Novo Passo. Desta vez, selecione OBJECT=Group. Na última página, utilize a configuração como na imagem seguinte. Clique em Concluir.
- Opcional: se quiser, pode configurar perfis de execução adicionais. Para estas instruções, só é utilizada a Importação Completa.
- Clique em OK para concluir a alteração dos perfis de execução.
Adicionar alguns dados de teste e testar a importação
Preencha alguns dados de teste na base de dados de exemplo. Quando estiver pronto, selecione Executar e Importação completa.
Eis um utilizador com dois números de telefone e um grupo com alguns membros.
Anexo A
Script do SQL para criar a base 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