Configuración de una conexión de indexador a Azure SQL Managed Instance mediante una identidad administrada

Note

Búsqueda de Azure AI está disponible a través del portal de Azure, las API REST y los SDK de Azure. También respalda Foundry IQ, la capa de conocimiento administrada que transforma el contenido empresarial en bases de conocimiento reutilizables y compatibles con permisos para agentes en el portal de Microsoft Foundry.

En este artículo se describe cómo configurar una conexión de indexador Búsqueda de Azure AI a SQL Managed Instance mediante una identidad administrada en lugar de proporcionar credenciales en el cadena de conexión.

Puede usar una identidad administrada asignada por el sistema o una identidad administrada asignada por el usuario. Las identidades administradas son inicios de sesión de Microsoft Entra y requieren asignaciones de roles de Azure para acceder a los datos en SQL Managed Instance.

Antes de obtener más información sobre esta característica, debe comprender qué es un indexador y cómo configurar un indexador para el origen de datos. Para obtener más información, consulte Indexadores en Búsqueda de Azure AI y Indexación de datos a partir de bases de datos de Azure SQL.

Requisitos previos

Asignación de permisos para leer la base de datos

Siga estos pasos para asignar al servicio de búsqueda o a la identidad gestionada asignada por el usuario el permiso para leer la base de datos de SQL Managed.

  1. Conéctese al SQL Managed Instance a través de SQL Server Management Studio (SSMS) mediante uno de los métodos siguientes:

  2. Autentíquese mediante la cuenta de Microsoft Entra.

    Captura de pantalla del cuadro de diálogo Conectar al servidor.

  3. En el panel izquierdo, busque la base de datos SQL que usa como origen de datos para la indexación y haga clic con el botón derecho en ella. Seleccione Nueva consulta.

    Captura de pantalla de la nueva consulta SQL.

  4. En la ventana T-SQL, copie los comandos siguientes e incluya los corchetes alrededor del nombre del servicio de búsqueda. Seleccione Ejecutar.

    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];
    

    Captura de pantalla de cómo ejecutar una consulta SQL.

Si posteriormente cambia la identidad del sistema del servicio de búsqueda después de asignar permisos, debe quitar la pertenencia al rol y quitar el usuario de la base de datos SQL y, a continuación, repetir la asignación de permisos. Para quitar un usuario y su pertenencia a los roles, ejecute los siguientes comandos:

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];

Adición de una asignación de roles

En este paso, se concede permiso al servicio Búsqueda de Azure AI para leer datos de la SQL Managed Instance.

  1. En el portal de Azure, vaya a la página de SQL Managed Instance.

  2. Seleccione Control de acceso (IAM) .

  3. Seleccione Agregar>asignación de roles.

    Mostrando captura de pantalla de la página de Control de Acceso.

  4. Seleccione el rol Lector .

  5. Deje Asignar acceso a en Usuario, grupo o entidad de servicio de Microsoft Entra.

  6. Si usa una identidad administrada asignada por el sistema, busque el servicio de búsqueda y selecciónelo. Si usa una identidad administrada asignada por el usuario, busque el nombre de la identidad administrada asignada por el usuario y selecciónela. Seleccione Guardar.

    Este es un ejemplo de SQL Managed Instance mediante una identidad administrada asignada por el sistema:

    Captura de pantalla de la asignación de roles de miembro.

Creación del origen de datos

Cree el origen de datos y proporcione una identidad administrada asignada por el sistema.

Identidad administrada asignada por el sistema

El REST API, Azure portal y el SDK de .NET admiten la identidad administrada asignada por el sistema.

Cuando se conecta mediante una identidad administrada asignada por el sistema, el único cambio en la definición del origen de datos es el formato de la propiedad "credentials". Proporcionará un nombre de catálogo o base de datos original y un ResourceId que no tenga ninguna clave o contraseña de cuenta. El ResourceId debe incluir el identificador de suscripción de SQL Managed Instance, el grupo de recursos de SQL Managed instance y el nombre de la base de datos SQL.

Este es un ejemplo de cómo crear un origen de datos para indexar datos de una Instancia Administrada de SQL mediante la API REST de Crear origen de datos y una cadena de conexión de identidad administrada. El formato de la cadena de conexión de identidad administrada es el mismo para la API REST, el SDK de .NET y el portal de 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" 
    }
} 

Creación del índice

El índice especifica los campos de un documento, atributos y otras construcciones que dan forma a la experiencia de búsqueda.

Esta es una llamada a la API REST Create Index con un campo que permite booktitle búsquedas:

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 }
    ]
}

Creación del indexador

Un indexador conecta un origen de datos con un índice de búsqueda de destino y proporciona una programación para automatizar la actualización de datos. Después de crear el índice y el origen de datos, cree el indexador.

Esta es una llamada API REST Create Indexer con una definición de Azure SQL indexador. El indexador se ejecuta al enviar la solicitud.

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"
}

Solución de problemas

Si recibe un error cuando el indexador intenta conectarse al origen de datos que indica que el cliente no puede acceder al servidor, consulte los errores comunes del indexador.

También puede descartar cualquier problema de firewall probando la conexión con y sin restricciones.

Consulte también