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