Поделиться через


Универсальный соединитель SQL: пошаговое руководство

Эта статья является пошаговым руководством. Она поможет вам создать простую базу данных для отдела кадров, которая предназначена для импорта некоторых пользователей и их членства в группе.

Примечание

Microsoft Entra id теперь предоставляет упрощенное решение на основе агента для подготовки пользователей в базе данных SQL без необходимости развертывания синхронизации MIM. Мы рекомендуем использовать его для подготовки исходящих пользователей. Подробнее.

Подготовка образца базы данных

На сервере под управлением SQL Server запустите скрипт SQL, приведенный в приложении А. Этот скрипт создает образец базы данных с именем GSQLDEMO. Объектная модель для созданной базы данных выглядит так:
Объектная модель

Также создайте пользователя, который будет использоваться для подключения к базе данных. В этом пошаговом руководстве пользователю присвоено имя FABRIKAM\SQLUser, и он находится в домене.

Создание файла подключения ODBC

Универсальный соединитель SQL использует ODBC для подключения к удаленному серверу. Сначала необходимо создать файл с данными подключения ODBC.

  1. Запустите программу управления ODBC на сервере:
    Снимок экрана: поле поиска с введенным OD B C.
  2. Откройте вкладку File DSN(Файловый DSN). Нажмите кнопку Добавить....
    Снимок экрана: служебная программа управления OD B C с выбранной вкладкой
  3. Встроенный драйвер работает нормально, поэтому выберите его и нажмите кнопку Далее>.
    Снимок экрана: параметры драйвера для нового источника данных.
  4. Укажите имя файла, например GenericSQL.
    Снимок экрана: пример нового имени файла, введенного в поле, и кнопка
  5. Нажмите кнопку Готово.
    Снимок экрана: сведения о новом источнике данных и кнопка
  6. Теперь нужно настроить подключение. Введите понятное описание источника данных и укажите имя сервера, на котором выполняется SQL Server.
    Снимок экрана: мастер настройки с примером описания и имени сервера, а также кнопкой
  7. Выберите способ проверки подлинности с помощью SQL. В нашем примере используется проверка подлинности Windows.
    Снимок экрана: шаг проверки подлинности с выбранным параметром встроенной проверки подлинности Windows и кнопкой
  8. Укажите имя образца базы данных — GSQLDEMO.
    Снимок экрана: имя базы данных, введенное в поле базы данных, и кнопка
  9. На этом экране оставьте настройки по умолчанию. Нажмите кнопку Готово.
    Снимок экрана: параметры по умолчанию на последнем шаге мастера и кнопка
  10. Чтобы проверить, все ли работает правильно, нажмите кнопку Test Data Source(Проверить источник данных).
    Снимок экрана: сведения о конфигурации нового источника данных OD B C и кнопки
  11. Убедитесь, что проверка прошла успешно.
    Снимок экрана: результаты теста и кнопка O K.
  12. Файл конфигурации ODBC должен появиться на вкладке "File DSN" (Файловый DSN).
    Снимок экрана: служебная программа управления OD B C с выбранной вкладкой

Теперь у нас есть нужный файл, и можно приступить к созданию соединителя.

Создание универсального соединителя SQL

  1. В пользовательском интерфейсе Synchronization Service Manager выберите Соединители и Создать. Выберите Generic SQL (Microsoft) (Универсальный SQL (Майкрософт)) и присвойте описательное имя.
    Снимок экрана: мастер создания соединителя с выбранным соединителем и кнопкой
  2. Найдите файл DSN, созданный в предыдущем разделе, и отправьте его на сервер. Укажите учетные данные для подключения к базе данных.
    Снимок экрана: файл DS N с введенными учетными данными и кнопкой
  3. В этом пошаговом руководстве мы упростим процесс и предположим, что существует два типа объектов: User и Group. Снимок экрана: два типа объектов, введенных в поле списка фиксированных значений, и кнопка
  4. При поиске атрибутов нам нужно, чтобы соединитель обнаружил их при просмотре таблицы. Так как объект Users является зарезервированным словом в SQL, его необходимо заключить в квадратные скобки [].
    Снимок экрана: значение обнаружения атрибутов таблицы и значение таблицы пользователей и кнопка
  5. Теперь нужно определить атрибут привязки и атрибут различаемого имени. Для Usersмы используем сочетание двух атрибутов — username и EmployeeID. Для Groupмы используем GroupName (не слишком реалистично для обычной жизни, но подойдет для этого руководства). Снимок экрана: имя пользователя, идентификатор сотрудника и имя группы с кнопкой
  6. В базе данных SQL могут быть обнаружены только некоторые типы атрибутов. В частности, нельзя обнаружить тип ссылочного атрибута. Для типа объекта Group необходимо изменить значения OwnerID и MemberID на ссылку.
    Снимок экрана: обновленные поля идентификатора владельца и идентификатора участника, а также кнопка
  7. Для атрибутов, выбранных как ссылочные атрибуты на предыдущем этапе, теперь требуется тип объекта, ссылкой на который они являются. В нашем случае это тип объекта User.
    Снимок экрана: выбранный тип объекта и кнопка
  8. На странице "Глобальные параметры" выберите Watermark (Водяной знак) в качестве стратегии изменений. В поле формата даты и времени введите гггг-ММ-дд ЧЧ:мм:сс. Снимок экрана: поля для разностной стратегии, формат даты и времени, а также кнопка
  9. На странице Configure Partitions and Hierarchies (Настройка секций и иерархий) выберите оба типа объектов. Снимок экрана: оба выбранных типа объектов и кнопка
  10. На странице Выбор типов объектов и Выбор атрибутов выберите оба типа объектов и все атрибуты. На странице Configure Anchors (Настройка привязки) нажмите кнопку Готово.

Создание профилей выполнения

  1. В пользовательском интерфейсе Synchronization Service Manager выберите Connectors (Соединители) и щелкните Configure Run Profiles (Настроить профили выполнения). Щелкните Создать профиль. Мы начнем с профиля Full Import(Полный импорт).
    Снимок экрана: мастер настройки профиля запуска с полным импортом, введенным в поле Имя, и кнопкой Далее.
  2. Выберите тип Full Import (Stage Only)(Полный импорт (только демонстрация)).
    Снимок экрана: выбранный тип и кнопка
  3. Выберите раздел OBJECT=User.
    Снимок экрана: выбранная секция и кнопка
  4. Выберите Table и введите [USERS]. Прокрутите вниз до раздела многозначного типа объекта и введите данные, как показано ниже. Нажмите кнопку Finish (Готово), чтобы сохранить данные на этом этапе.
    Снимок экрана: выбранный метод операции Таблица и пользователи в поле таблицы.
    Снимок экрана: значения типа объекта с несколькими значениями, введенные для имени и условия соединения.
  5. Выберите Новый шаг. На этот раз выберите OBJECT=Group. На последней странице используйте конфигурацию, изображенную на рисунке ниже. Нажмите кнопку Готово.
    Снимок экрана: выбранный метод операции Таблица и группа в поле таблицы.
    Снимок экрана: значения типа объекта, введенные для имени таблицы и условия соединения.
  6. Можно настроить дополнительные профили выполнения, но это необязательно. В этом пошаговом руководстве используется только профиль "Full Import" (Полный импорт).
  7. Нажмите кнопку ОК , чтобы завершить изменение профилей выполнения.

Добавление некоторых тестовых данных и тестирование импорта

Введите тестовые данные в образец базы данных. Когда будете готовы, щелкните Run (Выполнить) и Full import (Полный импорт).

Здесь мы видим пользователя с двумя телефонными номерами и группу с несколькими участниками.
Снимок экрана: данные пользователя с двумя телефонными номерами.
Снимок экрана: данные, показывающие группу с некоторыми участниками.

Приложении A

Сценарий SQL для создания образца базы данных

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