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:
Modelo de Objeto

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.

  1. Inicie o utilitário de gestão ODBC no servidor:
    Captura de ecrã a mostrar um campo de pesquisa com O D B C introduzido.
  2. Selecione o separador Ficheiro DSN. Clique em Adicionar....
    Captura de ecrã do utilitário de gestão O D B C com o separador Ficheiro D S N selecionado.
  3. O controlador inicial funciona bem, por isso selecione-o e clique em Seguinte>.
    Captura de ecrã a mostrar as opções de controlador para a nova origem de dados.
  4. Atribua um nome ao ficheiro, como GenericSQL.
    Captura de ecrã a mostrar um novo nome de ficheiro de exemplo introduzido no campo e um botão Seguinte.
  5. Clique em Concluir.
    Captura de ecrã a mostrar os novos detalhes da origem de dados e um botão Concluir.
  6. 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.
    Captura de ecrã a mostrar o assistente de configuração com uma descrição de exemplo e o nome do servidor e um botão Seguinte.
  7. Selecione como autenticar com o SQL. Neste caso, utilizamos a Autenticação do Windows.
    Captura de ecrã a mostrar o passo de autenticação com a opção de autenticação integrada do Windows selecionada e um botão Seguinte.
  8. Indique o nome da base de dados de exemplo GSQLDEMO.
    Captura de ecrã a mostrar o nome da base de dados introduzido no campo da base de dados e um botão Seguinte.
  9. Mantenha tudo predefinido neste ecrã. Clique em Concluir.
    Captura de ecrã a mostrar as predefinições no passo final do assistente e um botão Concluir.
  10. Para verificar se está tudo a funcionar conforme esperado, clique em Testar Origem de Dados.
    Captura de ecrã a mostrar os detalhes de configuração da nova origem de dados O D B C e um botão Testar Origem de Dados.
  11. Certifique-se de que o teste foi efetuado com êxito.
    Captura de ecrã a mostrar os resultados do teste e um botão O K.
  12. O ficheiro de configuração ODBC deverá agora estar visível no DSN de Ficheiros.
    Captura de ecrã do utilitário de gestão O D B C com o separador Ficheiro D S N selecionado e o novo ficheiro de configuração O D B C listado.

Agora temos o ficheiro de que precisamos e podemos começar a criar o Conector.

Criar o Conector SQL Genérico

  1. Na IU do Service Manager de Sincronização, selecione Conectores e Criar. Selecione SQL Genérico (Microsoft) e atribua-lhe um nome descritivo.
    Captura de ecrã a mostrar o assistente Criar Conector com o conector selecionado e um botão Seguinte.
  2. 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.
    Captura de ecrã a mostrar o ficheiro D S N com credenciais introduzidas e um botão Seguinte.
  3. Nestas instruções, estamos a facilitar-nos a vida e a dizer que existem dois tipos de objetos: Utilizador e Grupo. Captura de ecrã a mostrar os dois tipos de objeto introduzidos no campo de lista de valores fixos e um botão Seguinte.
  4. 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 [ ].
    Captura de ecrã a mostrar o valor de Deteção de Atributos do valor da tabela e da tabela dos utilizadores e um botão Seguinte.
  5. 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). Captura de ecrã a mostrar o nome de utilizador, o ID do funcionário e o nome do grupo, com um botão Seguinte.
  6. 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.
    Captura de ecrã a mostrar os campos I D e ID de membro do proprietário atualizados e um botão Seguinte.
  7. 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.
    Captura de ecrã a mostrar o tipo de objeto selecionado e um botão Seguinte.
  8. 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. Captura de ecrã a mostrar os campos da estratégia delta, o formato de data e hora e um botão Seguinte.
  9. Na página Configurar Partições e Hierarquias, selecione ambos os tipos de objeto. Captura de ecrã a mostrar os dois tipos de objeto selecionados e o botão Seguinte.
  10. 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

  1. 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.
    Captura de ecrã a mostrar o assistente Configurar Perfil de Execução com Importação Completa introduzida no campo Nome e um botão Seguinte.
  2. Selecione o tipo Importação Completa (Apenas Fase).
    Captura de ecrã a mostrar o tipo selecionado e um botão Seguinte.
  3. Selecione a partição OBJECT=User.
    Captura de ecrã a mostrar a partição selecionada e um botão Seguinte.
  4. 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.
    Captura de ecrã a mostrar o método de operação Tabela selecionada e utilizadores no campo da tabela.
    Captura de ecrã a mostrar valores de tipo de objeto de valores múltiplos introduzidos para a condição de nome e associação.
  5. Selecione Novo Passo. Desta vez, selecione OBJECT=Group. Na última página, utilize a configuração como na imagem seguinte. Clique em Concluir.
    Captura de ecrã a mostrar o método de operação Tabela selecionada e agrupar no campo da tabela.
    Captura de ecrã a mostrar os valores do tipo de objeto introduzidos para o nome da condição de associação e tabela.
  6. Opcional: se quiser, pode configurar perfis de execução adicionais. Para estas instruções, só é utilizada a Importação Completa.
  7. 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.
Captura de ecrã a mostrar dados que mostram um utilizador com dois números de telefone.
Captura de ecrã a mostrar os dados que mostram 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