Настройте подключение индексатора к Управляемый экземпляр SQL Azure с помощью управляемого удостоверения

Note

Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.

В этой статье описывается, как настроить подключение индексатора Поиск с использованием ИИ Azure к Управляемый экземпляр SQL с помощью управляемого удостоверения вместо предоставления учетных данных в строка подключения.

Вы можете использовать управляемое удостоверение, назначаемое системой, или управляемое удостоверение, назначаемое пользователем. Управляемые удостоверения — это логины Microsoft Entra и требуют назначения ролей Azure для доступа к данным в Управляемый экземпляр SQL.

Прежде чем узнать больше об этой функции, необходимо понять, что такое индексатор и как настроить индексатор для источника данных. Дополнительные сведения см. в разделе Indexers в Поиск с использованием ИИ Azure и индексация данных из База данных SQL Azure.

Необходимые условия

Назначение разрешений для чтения базы данных

Выполните следующие действия, чтобы назначить управляемому удостоверению системы поиска разрешение на чтение управляемой базы данных SQL.

  1. Подключитесь к Управляемый экземпляр SQL через SQL Server Management Studio (SSMS) с помощью одного из следующих методов:

  2. Проверка подлинности с помощью учетной записи Microsoft Entra.

    Снимок экрана: диалоговое окно

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

    Снимок экрана: новый SQL-запрос.

  4. В окне T-SQL скопируйте следующие команды и добавьте квадратные скобки по имени службы поиска. Выберите "Выполнить".

    CREATE USER [insert your search service name here or user-assigned managed identity name] FROM EXTERNAL PROVIDER;
    EXEC sp_addrolemember 'db_datareader', [insert your search service name here or user-assigned managed identity name];
    

    Снимок экрана: выполнение SQL-запроса.

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

sp_droprolemember 'db_datareader', [insert your search service name or user-assigned managed identity name];

DROP USER IF EXISTS [insert your search service name or user-assigned managed identity name];

Добавление назначения ролей

На этом шаге вы предоставляете Поиск с использованием ИИ Azure службе разрешение на чтение данных из Управляемый экземпляр SQL.

  1. На портале Azure перейдите на страницу Управляемый экземпляр SQL.

  2. Выберите Управление доступом (IAM).

  3. Выберите Добавить>Добавить назначение роли.

    Отображение снимка экрана страницы управления доступом.

  4. Выберите роль читателя .

  5. Оставьте Назначение доступа к как пользователю Microsoft Entra, группе или субъекту-службы.

  6. Если вы используете управляемое удостоверение, назначаемое системой, найдите службу поиска и выберите ее. Если вы используете управляемое удостоверение, назначаемое пользователем, найдите имя управляемого удостоверения, назначаемого пользователем, и выберите его. Нажмите кнопку "Сохранить".

    Ниже приведен пример Управляемый экземпляр SQL с помощью управляемого удостоверения, назначаемого системой:

    Снимок экрана с назначением роли участника.

Создание источника данных

Создайте источник данных и укажите управляемое удостоверение, назначаемое системой.

Назначаемое системой управляемое удостоверение

API REST, Azure портал и .NET SDK поддерживают управляемое удостоверение, назначаемое системой.

При подключении с помощью управляемого удостоверения, назначаемого системой, единственное изменение определения источника данных — это формат свойства "credentials". Вы предоставляете имя начального каталога или базы данных, а ResourceId не имеет ключа учетной записи или пароля. ResourceId должен содержать идентификатор подписки Управляемый экземпляр SQL, группу ресурсов SQL Managed instance и имя базы данных SQL.

Ниже приведен пример создания источника данных для индексирования данных из управляемого экземпляра SQL с помощью REST API Create Data Source и строки подключения управляемой идентификации. Формат строки подключения для управляемого удостоверения одинаков для REST API, SDK .NET и портала Azure.

POST https://[service name].search.windows.net/datasources?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]

{
    "name" : "sql-mi-datasource",
    "type" : "azuresql",
    "credentials" : { 
        "connectionString" : "Database=[SQL database name];ResourceId=/subscriptions/[subscription ID]/resourcegroups/[resource group name]/providers/Microsoft.Sql/managedInstances/[SQL Managed Instance name];Connection Timeout=100;"
    },
    "container" : { 
        "name" : "my-table" 
    }
} 

Создание индекса

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

Ниже приведен вызов REST API для создания индекса с полем для booktitle поиска:

POST https://[service name].search.windows.net/indexes?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]

{
    "name" : "my-target-index",
    "fields": [
        { "name": "id", "type": "Edm.String", "key": true, "searchable": false },
        { "name": "booktitle", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false }
    ]
}

Создание индексатора

Индексатор подключает источник данных с целевым индексом поиска и предоставляет расписание для автоматизации обновления данных. После создания индекса и источника данных создайте индексатор.

Пример вызова REST API Create Indexer с определением индексатора Azure SQL. Индексатор запускается при отправке запроса.

POST https://[service name].search.windows.net/indexers?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]

{
    "name" : "sql-mi-indexer",
    "dataSourceName" : "sql-mi-datasource",
    "targetIndexName" : "my-target-index"
}

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

Если при подключении индексатора к источнику данных возникает ошибка, которая сообщает, что клиенту запрещен доступ к серверу, см. распространенные ошибки индексатора.

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

См. также