Configurar uma conexão de indexador para Instância Gerenciada de SQL do Azure usando uma identidade gerenciada

Observação

Pesquisa de IA do Azure  está disponível por meio do portal Azure, APIs REST e SDKs do Azure. Ele também sustenta o IQ do Foundry, a camada de conhecimento gerenciado que transforma o conteúdo da empresa em bases de conhecimento reutilizáveis e com reconhecimento de permissão para agentes no portal do Microsoft Foundry.

Este artigo descreve como configurar uma conexão de indexador Pesquisa de IA do Azure  para Instância Gerenciada de SQL usando uma identidade gerenciada em vez de fornecer credenciais no cadeia de conexão.

Você pode usar uma identidade gerenciada atribuída pelo sistema ou uma identidade gerenciada atribuída pelo usuário. As identidades gerenciadas são logons do Microsoft Entra e exigem atribuições de função do Azure para acessar dados no Instância Gerenciada de SQL.

Antes de saber mais sobre esse recurso, você deve entender o que é um indexador e como configurar um indexador para sua fonte de dados. Para obter mais informações, consulte Indexadores na Pesquisa de IA do Azure e Indexar dados do Banco de Dados SQL do Azure.

Pré-requisitos

Atribuir permissões para ler o banco de dados

Siga estas etapas para atribuir a permissão de identidade gerenciada do sistema de serviço de pesquisa para ler o banco de dados SQL gerenciado.

  1. Conecte-se ao seu Instância Gerenciada de SQL por meio do SSMS (SQL Server Management Studio) usando um dos seguintes métodos:

  2. Autentique usando sua conta Microsoft Entra.

    Exibindo captura de tela da caixa de diálogo Conectar ao Servidor.

  3. No painel esquerdo, localize o banco de dados SQL que você está usando como fonte de dados para indexação e clique com o botão direito do mouse nele. Selecione Nova Consulta.

    Mostrando a captura de tela da nova consulta SQL.

  4. Na janela T-SQL, copie os comandos a seguir e inclua os colchetes ao redor do nome do serviço de pesquisa. Selecione Executar.

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

    Mostrando a captura de tela de como executar a consulta SQL.

Se posteriormente você alterar a identidade do sistema de serviço de pesquisa após atribuir permissões, deverá remover a associação de função e remover o usuário no banco de dados SQL e, em seguida, repetir a atribuição de permissão. Para remover a associação de função e o usuário, execute os seguintes 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];

Adicionar uma atribuição de função

Nesta etapa, você concede ao seu serviço Pesquisa de IA do Azure  permissão para ler dados de seu Instância Gerenciada de SQL.

  1. No portal do Azure, acesse sua página de Instância Gerenciada de SQL.

  2. Selecione controle de acesso (IAM).

  3. Selecione Adicionar>atribuição de função.

    Mostrando a captura de tela da página de Controle de Acesso.

  4. Selecione a função Leitor .

  5. Deixe Atribuir acesso a como usuário, grupo ou entidade de serviço do Microsoft Entra.

  6. Se você estiver usando uma identidade gerenciada atribuída pelo sistema, pesquise seu serviço de busca e selecione-o. Se você estiver usando uma identidade gerenciada atribuída pelo usuário, pesquise o nome da identidade gerenciada atribuída pelo usuário e selecione-a. Selecione Salvar.

    Aqui está um exemplo para Instância Gerenciada de SQL usando uma identidade gerenciada atribuída pelo sistema:

    Mostrando a captura de tela da atribuição de função de membro.

Criar a fonte de dados

Crie a fonte de dados e forneça uma identidade gerenciada atribuída pelo sistema.

Identidade gerenciada atribuída pelo sistema

A API REST, Azure portal e o .NET SDK dão suporte à identidade gerenciada atribuída pelo sistema.

Quando você se conecta usando uma identidade gerenciada atribuída pelo sistema, a única alteração na definição da fonte de dados é o formato da propriedade "credenciais". Forneça um nome de Catálogo Inicial ou Banco de Dados e uma ResourceId que não tenha chave de conta nem senha. O ResourceId deve incluir a ID da assinatura de Instância Gerenciada de SQL, o grupo de recursos de SQL Managed instance e o nome do banco de dados SQL.

Veja um exemplo de como criar uma fonte de dados para indexar dados de uma Instância Gerenciada do SQL usando a API REST Create Data Source e uma cadeia de conexão de identidade gerenciada. O formato da cadeia de conexão de identidade gerenciada é o mesmo para a API REST, o SDK do .NET e o portal do 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" 
    }
} 

Criar o índice

O índice especifica os campos em um documento, atributos e outros constructos que moldam a experiência de pesquisa.

Aqui está uma chamada à API REST criar índice com um campo pesquisável 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 }
    ]
}

Criar o indexador

Um indexador conecta uma fonte de dados com um índice de pesquisa de destino e fornece um agendamento para automatizar a atualização de dados. Depois de criar o índice e a fonte de dados, crie o indexador.

Aqui está uma chamada Create Indexer API REST com uma definição de indexador SQL do Azure. O indexador é executado quando você envia a solicitação.

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

Solucionando problemas

Se você receber um erro quando o indexador tentar se conectar à fonte de dados que diz que o cliente não tem permissão para acessar o servidor, consulte os erros comuns do indexador.

Você também pode descartar quaisquer problemas de firewall tentando a conexão com e sem restrições em vigor.

Consulte também