соединители Microsoft Graph Azure SQL и Microsoft SQL Server

Соединитель Microsoft SQL Server или Azure SQL Microsoft Graph позволяет вашей организации обнаруживать и индексировать данные из локальной базы данных SQL Server или базы данных, размещенной в экземпляре Azure SQL в облаке. Соединитель индексирует указанное содержимое в поиске (Майкрософт). Для поддержания индекса в актуальном состоянии с исходными данными поддерживается периодическое полное и добавочное обход контента. С помощью этих соединителей SQL можно также ограничить доступ к результатам поиска для определенных пользователей.

Примечание.

Общие инструкции по настройке соединителей Graph см. в статье Настройка соединителя Microsoft Graph .

Эта статья предназначена для всех, кто настраивает, запускает и отслеживает Azure SQL или соединитель Microsoft SQL Server. Он дополняет общий процесс установки и содержит инструкции, применимые только к соединителям Azure SQL и Microsoft SQL Server. В этой статье также содержатся сведения об ограничениях для обоих соединителей.

Перед началом работы

Установите агент соединителя Microsoft Graph (требуется только для локального соединителя Microsoft SQL Server)

Чтобы получить доступ к локальным сторонним данным, необходимо установить и настроить агент соединителя. Дополнительные сведения см. в статье Установка агента соединителя Microsoft Graph .

Примечание.

Если при настройке соединителя Microsoft SQL Server используется проверка подлинности Windows, пользователь, с помощью которого вы пытаетесь войти, должен иметь интерактивные права входа на компьютер, на котором установлен агент соединителя. См. документацию по управлению политикой входа, чтобы проверка права входа.

Шаг 1. Добавление соединителя в Центр администрирования Microsoft 365

Следуйте общим инструкциям по настройке.

Шаг 2. Присвойте соединению имя

Следуйте общим инструкциям по настройке.

Шаг 3. Настройка параметров подключения

Регистрация приложения (только для соединителя Azure SQL)

Для соединителя Azure SQL необходимо зарегистрировать приложение в Microsoft Entra идентификаторе, чтобы разрешить приложению Поиска (Майкрософт) доступ к данным для индексирования. Дополнительные сведения о регистрации приложения см. в документации по Microsoft Graph о регистрации приложения.

После завершения регистрации приложения и записи имени приложения, идентификатора приложения (клиента) и идентификатора клиента необходимо создать новый секрет клиента. Секрет клиента будет отображаться только один раз. Не забудьте отметить, & безопасно хранить секрет клиента. Используйте идентификатор клиента и секрет клиента при настройке нового подключения в Поиске (Майкрософт).

Чтобы добавить зарегистрированное приложение в базу данных Azure SQL, необходимо:

  • Вход в базу данных Azure SQL
  • Открытие нового окна запроса
  • Создайте пользователя, выполнив команду CREATE USER [имя приложения] FROM EXTERNAL PROVIDER.
  • Добавьте пользователя в роль, выполнив команду "exec sp_addrolemember "db_datareader", [имя приложения]" или "ALTER ROLE db_datareader ADD MEMBER [имя приложения]".

Примечание.

Чтобы отозвать доступ к любому приложению, зарегистрированным в Microsoft Entra идентификаторе, обратитесь к документации Azure по удалению зарегистрированного приложения.

Параметры подключения

Чтобы подключить соединитель Microsoft SQL Server к источнику данных, необходимо настроить сервер базы данных, который требуется выполнить обход, и локальный агент. Затем можно подключиться к базе данных с помощью необходимого метода проверки подлинности.

Примечание.

  • База данных должна работать SQL Server версии 2008 или более поздней, чтобы соединитель Microsoft SQL Server мог подключаться.
  • Соединитель Azure SQL разрешает прием только из экземпляра Azure SQL в том же клиенте, что и Microsoft 365. Поток данных между клиентами не поддерживается.

Для соединителя Azure SQL необходимо только указать имя сервера или IP-адрес, к которому требуется подключиться. соединитель Azure SQL поддерживает только проверку подлинности Microsoft Entra идентификатора OpenID Connect (OIDC) для подключения к базе данных.

Для обеспечения повышенной безопасности можно настроить правила брандмауэра ДЛЯ IP-адресов для сервера Azure SQL или базы данных. Дополнительные сведения о настройке правил брандмауэра для IP-адресов см. в документации по правилам брандмауэра для IP-адресов. Добавьте следующие диапазоны IP-адресов клиента в параметры брандмауэра.

Region M365 Корпоративный M365 Government
NAM 52.250.92.252/30, 52.224.250.216/30 52.245.230.216/30, 20.141.117.64/30
EUR 20.54.41.208/30, 51.105.159.88/30 Н/Д
APC 52.139.188.212/30, 20.43.146.44/30 Н/Д

Для поиска содержимого базы данных необходимо указать SQL-запросы при настройке соединителя. Эти SQL-запросы должны присвоить имена всем столбцам базы данных, которые требуется индексировать (т. е. свойства источника), включая все соединения SQL, которые необходимо выполнить для получения всех столбцов. Чтобы ограничить доступ к результатам поиска, необходимо указать списки контроль доступа (ACL) в SQL-запросах при настройке соединителя.

Шаг 3a. Полный обход контента (обязательно)

На этом шаге вы настроите SQL-запрос, выполняющий полный обход базы данных. При полном обходе контента выбираются все столбцы или свойства, в которых нужно выбрать параметры Запрос, Поиск или Извлечение. Можно также указать столбцы ACL, чтобы ограничить доступ к результатам поиска определенным пользователям или группам.

Совет

Чтобы получить все необходимые столбцы, можно объединить несколько таблиц.

Скрипт, показывающий OrderTable и AclTable с примерами свойств.

Выбор столбцов данных (обязательный) и ACL (необязательно)

В примере демонстрируется выбор из пяти столбцов данных, в которые содержатся данные для поиска: OrderId, OrderTitle, OrderDesc, CreatedDateTime и IsDeleted. Чтобы задать разрешения на просмотр для каждой строки данных, при необходимости можно выбрать следующие столбцы ACL: AllowedUsers, AllowedGroups, DeniedUsers и DeniedGroups. Все эти столбцы данных также имеют параметры Запрос, Поиск или Извлечение.

Выберите столбцы данных, как показано в этом примере запроса: SELECT OrderId, OrderTitle, OrderDesc, AllowedUsers, AllowedGroups, DeniedUsers, DeniedGroups, CreatedDateTime, IsDeleted

Обратите внимание, что соединители SQL не разрешают имена столбцов с буквенно-цифровыми символами в предложении SELECT. Удалите все небуквенно-цифровые символы из имен столбцов с помощью псевдонима. Пример. SELECT column_name AS columnName

Чтобы управлять доступом к результатам поиска, можно указать один или несколько столбцов ACL в запросе. Соединитель SQL позволяет управлять доступом на уровне записей. Вы можете выбрать одинаковый контроль доступа для всех записей в таблице. Если сведения об ACL хранятся в отдельной таблице, может потребоваться выполнить соединение с этими таблицами в запросе.

Ниже описано использование каждого из столбцов ACL в приведенном выше запросе. В следующем списке описаны четыре механизма управления доступом.

  • AllowedUsers: в этом столбце указывается список идентификаторов пользователей, которые могут получить доступ к результатам поиска. В следующем примере список пользователей: john@contoso.com, keith@contoso.comи lisa@contoso.com будет иметь доступ только к записи с OrderId = 12.
  • AllowedGroups: в этом столбце указывается группа пользователей, которые смогут получить доступ к результатам поиска. В следующем примере группа sales-team@contoso.com будет иметь доступ только к записи с OrderId = 12.
  • DeniedUsers: в этом столбце указывается список пользователей, у которых нет доступа к результатам поиска. В следующем примере пользователи john@contoso.com и keith@contoso.com не имеют доступа к записи с OrderId = 13, тогда как все остальные пользователи имеют доступ к этой записи.
  • DeniedGroups: в этом столбце указывается группа пользователей, у которых нет доступа к результатам поиска. В следующем примере группы engg-team@contoso.com и pm-team@contoso.com не имеют доступа к записи с OrderId = 15, тогда как все остальные имеют доступ к этой записи.

Примеры данных, показывающие OrderTable и AclTable с примерами свойств.

Поддерживаемые типы данных

В приведенной ниже таблице перечислены типы данных SQL, поддерживаемые соединителями MS SQL и Azure SQL. В таблице также приводится сводка типа данных индексирования для поддерживаемого типа данных SQL. Дополнительные сведения о поддерживаемых соединителях Microsoft Graph для индексирования см. в документации по типам ресурсов свойств.

Категория Тип данных источника Индексирование типа данных
дата и время; date
datetime
datetime2
Smalldatetime
datetime
Точное число Bigint
int
smallint
Tinyint
int64
Точное число Разрядной логический
Приблизительное число float
Реальные
double
Строка символов Char
Varchar
текст
string
Строки символов Юникода Nchar
Nvarchar
Ntext
string
Коллекция строк Char
Varchar
текст
Stringcollection*
Другие типы данных Uniqueidentifier string

*Чтобы проиндексировать столбец как StringCollection, необходимо привести строку к типу коллекции строк. Это можно сделать, щелкнув ссылку "Изменить типы данных" в параметрах полного обхода контента и выбрав соответствующие столбцы как StringCollection, а также укажите разделитель для разделения строки.

Для любого другого типа данных, который в настоящее время не поддерживается напрямую, необходимо явно привести столбец к поддерживаемому типу данных.

Подложка (обязательно)

Чтобы предотвратить перегрузку базы данных, соединитель пакетирует и возобновляет запросы полного обхода с помощью столбца подложки полного обхода. Используя значение столбца подложки, извлекается каждый последующий пакет, а запрос возобновляется из последней контрольной точки. По сути, эти механизмы управляют обновлением данных для полного обхода контента.

Создайте фрагменты запросов для подложек, как показано в следующих примерах:

  • WHERE (CreatedDateTime > @watermark). Приведите имя столбца подложки с зарезервированным ключевое слово @watermark. Если порядок сортировки столбца подложки возрастает, используйте >; в противном случае используйте <.
  • ORDER BY CreatedDateTime ASC. Сортировка по столбцу водяного знака по возрастанию или убыванию.

В конфигурации, показанной на следующем рисунке, CreatedDateTime является выбранным столбцом водяного знака. Чтобы получить первый пакет строк, укажите тип данных столбца подложки. В этом случае типом данных является DateTime.

Конфигурация столбца подложки.

Первый запрос извлекает первое N строк с помощью : "CreatedDateTime > 1 января 1753 00:00:00" (минимальное значение типа данных DateTime). После получения первого пакета наибольшее значение, возвращенное CreatedDateTime в пакете, сохраняется в качестве контрольной точки, если строки отсортированы по возрастанию. Пример: 1 марта 2019 г. 03:00:00. Затем следующий пакет из N строк извлекается с помощью "CreatedDateTime > 1 марта 2019 г. 03:00:00" в запросе.

Пропуск обратимо удаленных строк (необязательно)

Чтобы исключить обратимо удаленные строки в базе данных из индексирования, укажите имя и значение обратимого удаления столбца, указывающее, что строка удалена.

Параметры обратимого удаления:

Полный обход контента: управление разрешениями поиска

Выберите Управление разрешениями , чтобы выбрать различные столбцы управления доступом (ACL), определяющие механизм управления доступом. Выберите имя столбца, указанного в sql-запросе для полного обхода контента.

Ожидается, что каждый из столбцов ACL будет многозначным. Эти значения идентификаторов можно разделить разделителями, такими как точка с запятой (;), запятая (,) и т. д. Этот разделитель необходимо указать в поле разделителя значений .

Для использования в качестве списков управления доступом поддерживаются следующие типы идентификаторов:

  • Имя участника-пользователя (UPN). Имя участника-пользователя (UPN) — это имя системного пользователя в формате адреса электронной почты. Имя участника-пользователя (например, john.doe@domain.com) состоит из имени пользователя (имя входа), разделителя (символ @) и доменного имени (суффикс имени участника-пользователя).
  • идентификатор Microsoft Entra. В идентификаторе Microsoft Entra каждый пользователь или группа имеет идентификатор объекта, который выглядит примерно так: "e0d3ad3d-0000-1111-2222-3c5f5c52ab9b".
  • Идентификатор безопасности Active Directory (AD). В локальной установке AD каждый пользователь и группа имеют неизменяемый уникальный идентификатор безопасности, который выглядит примерно так: S-1-5-21-3878594291-215959936-132693609-65242.

Параметры разрешений на поиск для настройки списков управления доступом.

Шаг 3b. Добавочный обход контента (необязательно)

На этом необязательном шаге предоставьте SQL-запрос для выполнения добавочного обхода базы данных. С помощью этого запроса соединитель SQL определяет все изменения в данных с момента последнего добавочного обхода контента. Как и при полном обходе контента, выберите все столбцы, в которых нужно выбрать параметры Запрос, Поиск или Извлечение. Укажите тот же набор столбцов ACL, который вы указали в запросе полного обхода контента.

Компоненты на следующем рисунке похожи на компоненты полного обхода контента с одним исключением. В этом случае "ModifiedDateTime" является выбранным столбцом подложки. Ознакомьтесь с полными инструкциями по обходу контента , чтобы узнать, как написать добавочный запрос обхода контента, и просмотрите следующий образ в качестве примера.

Скрипт добавочного обхода, показывающий OrderTable, AclTable и примеры свойств, которые можно использовать.

Шаг 4. Назначение меток свойств

Следуйте общим инструкциям по настройке.

Шаг 5. Управление схемой

Следуйте общим инструкциям по настройке.

Шаг 6. Управление разрешениями поиска

Вы можете использовать списки ACL, указанные в полноэкранном режиме обхода контента, или переопределить их, чтобы сделать содержимое видимым для всех.

Шаг 7. Выбор параметров обновления

Следуйте общим инструкциям по настройке.

Шаг 8. Проверка подключения

Следуйте общим инструкциям по настройке.

Устранение неполадок

Ниже приведена распространенная ошибка, возникающая при настройке соединителя, и ее возможная причина.

Шаг настройки Сообщение об ошибке Возможные причины
Полный обход контента Error from database server: A transport level error has occurred when receiving results from the server. Эта ошибка возникает из-за проблем с сетью. Рекомендуется проверка журналы сети с помощью монитора сети Майкрософт и обратиться в службу поддержки майкрософт.
Полный обход контента Column column_name returned from full crawl SQL query contains non-alphanumeric character Небуквенно-цифровые символы (например, символы подчеркивания) не допускаются в именах столбцов в предложении SELECT. Используйте псевдонимы для переименования столбцов и удаления небуквенно-цифровых символов (пример: SELECT column_name AS columnName).

Ограничения

Соединители SQL имеют следующие ограничения в предварительной версии:

  • Соединитель Microsoft SQL Server. Локальная база данных должна работать SQL Server версии 2008 или более поздней.
  • Подписка Microsoft 365 и подписка Azure (размещение Azure SQL базы данных) должны находиться в пределах одного Microsoft Entra идентификатора.
  • Списки управления доступом поддерживаются только с помощью имени участника-пользователя (UPN), идентификатора Microsoft Entra или безопасности Active Directory.
  • Индексирование полнофункционированного содержимого внутри столбцов базы данных не поддерживается. Примерами такого содержимого являются HTML, JSON, XML, BLOB-объекты и синтаксический анализ документов, которые существуют в виде ссылок внутри столбцов базы данных.