Универсальный соединитель SQL: пошаговое руководство
Эта статья является пошаговым руководством. Она поможет вам создать простую базу данных для отдела кадров, которая предназначена для импорта некоторых пользователей и их членства в группе.
Примечание
Microsoft Entra id теперь предоставляет упрощенное решение на основе агента для подготовки пользователей в базе данных SQL без необходимости развертывания синхронизации MIM. Мы рекомендуем использовать его для подготовки исходящих пользователей. Подробнее.
Подготовка образца базы данных
На сервере под управлением SQL Server запустите скрипт SQL, приведенный в приложении А. Этот скрипт создает образец базы данных с именем GSQLDEMO. Объектная модель для созданной базы данных выглядит так:
Также создайте пользователя, который будет использоваться для подключения к базе данных. В этом пошаговом руководстве пользователю присвоено имя FABRIKAM\SQLUser, и он находится в домене.
Создание файла подключения ODBC
Универсальный соединитель SQL использует ODBC для подключения к удаленному серверу. Сначала необходимо создать файл с данными подключения ODBC.
- Запустите программу управления ODBC на сервере:
- Откройте вкладку File DSN(Файловый DSN). Нажмите кнопку Добавить....
- Встроенный драйвер работает нормально, поэтому выберите его и нажмите кнопку Далее>.
- Укажите имя файла, например GenericSQL.
- Нажмите кнопку Готово.
- Теперь нужно настроить подключение. Введите понятное описание источника данных и укажите имя сервера, на котором выполняется SQL Server.
- Выберите способ проверки подлинности с помощью SQL. В нашем примере используется проверка подлинности Windows.
- Укажите имя образца базы данных — GSQLDEMO.
- На этом экране оставьте настройки по умолчанию. Нажмите кнопку Готово.
- Чтобы проверить, все ли работает правильно, нажмите кнопку Test Data Source(Проверить источник данных).
- Убедитесь, что проверка прошла успешно.
- Файл конфигурации ODBC должен появиться на вкладке "File DSN" (Файловый DSN).
Теперь у нас есть нужный файл, и можно приступить к созданию соединителя.
Создание универсального соединителя SQL
- В пользовательском интерфейсе Synchronization Service Manager выберите Соединители и Создать. Выберите Generic SQL (Microsoft) (Универсальный SQL (Майкрософт)) и присвойте описательное имя.
- Найдите файл DSN, созданный в предыдущем разделе, и отправьте его на сервер. Укажите учетные данные для подключения к базе данных.
- В этом пошаговом руководстве мы упростим процесс и предположим, что существует два типа объектов: User и Group.
- При поиске атрибутов нам нужно, чтобы соединитель обнаружил их при просмотре таблицы. Так как объект Users является зарезервированным словом в SQL, его необходимо заключить в квадратные скобки [].
- Теперь нужно определить атрибут привязки и атрибут различаемого имени. Для Usersмы используем сочетание двух атрибутов — username и EmployeeID. Для Groupмы используем GroupName (не слишком реалистично для обычной жизни, но подойдет для этого руководства).
- В базе данных SQL могут быть обнаружены только некоторые типы атрибутов. В частности, нельзя обнаружить тип ссылочного атрибута. Для типа объекта Group необходимо изменить значения OwnerID и MemberID на ссылку.
- Для атрибутов, выбранных как ссылочные атрибуты на предыдущем этапе, теперь требуется тип объекта, ссылкой на который они являются. В нашем случае это тип объекта User.
- На странице "Глобальные параметры" выберите Watermark (Водяной знак) в качестве стратегии изменений. В поле формата даты и времени введите гггг-ММ-дд ЧЧ:мм:сс.
- На странице Configure Partitions and Hierarchies (Настройка секций и иерархий) выберите оба типа объектов.
- На странице Выбор типов объектов и Выбор атрибутов выберите оба типа объектов и все атрибуты. На странице Configure Anchors (Настройка привязки) нажмите кнопку Готово.
Создание профилей выполнения
- В пользовательском интерфейсе Synchronization Service Manager выберите Connectors (Соединители) и щелкните Configure Run Profiles (Настроить профили выполнения). Щелкните Создать профиль. Мы начнем с профиля Full Import(Полный импорт).
- Выберите тип Full Import (Stage Only)(Полный импорт (только демонстрация)).
- Выберите раздел OBJECT=User.
- Выберите Table и введите [USERS]. Прокрутите вниз до раздела многозначного типа объекта и введите данные, как показано ниже. Нажмите кнопку Finish (Готово), чтобы сохранить данные на этом этапе.
- Выберите Новый шаг. На этот раз выберите OBJECT=Group. На последней странице используйте конфигурацию, изображенную на рисунке ниже. Нажмите кнопку Готово.
- Можно настроить дополнительные профили выполнения, но это необязательно. В этом пошаговом руководстве используется только профиль "Full Import" (Полный импорт).
- Нажмите кнопку ОК , чтобы завершить изменение профилей выполнения.
Добавление некоторых тестовых данных и тестирование импорта
Введите тестовые данные в образец базы данных. Когда будете готовы, щелкните 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