соединители 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 необходимо зарегистрировать приложение в Azure Active Directory, чтобы разрешить приложению поиска (Майкрософт) доступ к данным для индексирования. Дополнительные сведения о регистрации приложения см. в документации по Microsoft Graph о регистрации приложения.
После завершения регистрации приложения и записи имени приложения, идентификатора приложения (клиента) и идентификатора клиента необходимо создать новый секрет клиента. Секрет клиента будет отображаться только один раз. Обратите внимание, что & секрет клиента хранится безопасно. Используйте идентификатор клиента и секрет клиента при настройке нового подключения в Поиске (Майкрософт).
Чтобы добавить зарегистрированное приложение в базу данных Azure SQL, необходимо:
- Вход в базу данных Azure SQL
- Открытие нового окна запроса
- Создайте пользователя, выполнив команду CREATE USER [имя приложения] FROM EXTERNAL PROVIDER.
- Добавьте пользователя в роль, выполнив команду "exec sp_addrolemember "db_datareader", [имя приложения]" или "ALTER ROLE db_datareader ADD MEMBER [имя приложения]".
Примечание.
Чтобы отозвать доступ к любому приложению, зарегистрированным в Azure Active Directory, см. документацию Azure по удалению зарегистрированного приложения.
Параметры подключения
Чтобы подключить соединитель Microsoft SQL Server к источнику данных, необходимо настроить сервер базы данных, для которого требуется выполнить обход контента, и локальный агент. Затем можно подключиться к базе данных с помощью необходимого метода проверки подлинности.
Примечание.
- База данных должна работать SQL Server версии 2008 или более поздней, чтобы соединитель Microsoft SQL Server мог подключаться.
- Соединитель Azure SQL разрешает прием только из экземпляра Azure SQL в том же клиенте, что и Microsoft 365. Поток данных между клиентами не поддерживается.
Для соединителя Azure SQL необходимо только указать имя сервера или IP-адрес, к которому требуется подключиться. Azure SQL соединитель поддерживает только проверку подлинности Azure Active Directory Open ID 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, чтобы ограничить доступ к результатам поиска определенным пользователям или группам.
Совет
Чтобы получить все необходимые столбцы, можно объединить несколько таблиц.
Выбор столбцов данных (обязательный) и 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, тогда как все остальные имеют доступ к этой записи.
Поддерживаемые типы данных
В приведенной ниже таблице перечислены типы данных SQL, поддерживаемые соединителями MS SQL и Azure SQL. В таблице также приводится сводка типа данных индексирования для поддерживаемого типа данных SQL. Дополнительные сведения о поддерживаемых соединителях Microsoft Graph для индексирования см. в документации по типам ресурсов свойств.
Category | Тип данных источника | Индексирование типа данных |
---|---|---|
дата и время; | date datetime datetime2 Smalldatetime |
datetime |
Точное число | Bigint int smallint Tinyint |
int64 |
Точное число | Разрядной | логический |
Приблизительное число | float Реальные |
double |
Строка символов | char Varchar текст |
string |
Строки символов Юникода | Nchar Nvarchar Ntext |
string |
Другие типы данных | Uniqueidentifier | string |
Для любого другого типа данных, который в настоящее время не поддерживается напрямую, необходимо явно привести столбец к поддерживаемому типу данных.
Подложка (обязательно)
Чтобы предотвратить перегрузку базы данных, соединитель пакетирует и возобновляет запросы полного обхода с помощью столбца подложки полного обхода. Используя значение столбца подложки, извлекается каждый последующий пакет, а запрос возобновляется из последней контрольной точки. По сути, эти механизмы управляют обновлением данных для полного обхода контента.
Создайте фрагменты запросов для подложек, как показано в следующих примерах:
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) состоит из имени пользователя (имя входа), разделителя (символ @) и доменного имени (суффикс имени участника-пользователя).
- Идентификатор Azure Active Directory (AAD): в Azure AD каждый пользователь или группа имеет идентификатор объекта, который выглядит примерно так: "e0d3ad3d-0000-1111-2222-3c5f5c52ab9b".
- Идентификатор безопасности Active Directory (AD). В локальной установке AD каждый пользователь и группа имеют неизменяемый уникальный идентификатор безопасности, который выглядит примерно так: S-1-5-21-3878594291-215959936-132693609-65242.
Шаг 3b. Добавочный обход контента (необязательно)
На этом необязательном шаге предоставьте SQL-запрос для выполнения добавочного обхода базы данных. С помощью этого запроса соединитель SQL определяет все изменения в данных с момента последнего добавочного обхода контента. Как и при полном обходе контента, выберите все столбцы, в которых нужно выбрать параметры Запрос, Поиск или Извлечение. Укажите тот же набор столбцов ACL, который вы указали в запросе полного обхода контента.
Компоненты на следующем рисунке похожи на компоненты полного обхода контента с одним исключением. В этом случае "ModifiedDateTime" является выбранным столбцом подложки. Ознакомьтесь с полными инструкциями по обходу контента , чтобы узнать, как написать добавочный запрос обхода контента, и просмотрите следующий образ в качестве примера.
Шаг 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 базы данных) должны находиться в одной и той же службе Azure Active Directory.
- Списки ACL поддерживаются только с помощью имени участника-пользователя (UPN), Azure Active Directory (Azure AD) или службы безопасности Active Directory.
- Индексирование полнофункционированного содержимого внутри столбцов базы данных не поддерживается. Примерами такого содержимого являются HTML, JSON, XML, BLOB-объекты и синтаксический анализ документов, которые существуют в виде ссылок внутри столбцов базы данных.