Nastavení připojení indexeru k Azure SQL pomocí spravované identity

Note

Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.

Tento článek vysvětluje, jak nastavit připojení indexeru k Azure SQL Database pomocí spravované identity místo zadání přihlašovacích údajů v připojovací řetězec.

Můžete použít spravovanou identitu přiřazenou systémem nebo spravovanou identitu přiřazenou uživatelem. Spravované identity jsou přihlášení Microsoft Entra a vyžadují přiřazení rolí Azure pro přístup k datům v Azure SQL.

Požadavky

1. Přiřazení oprávnění ke čtení databáze

Postupujte podle následujících kroků k přiřazení oprávnění ke službě vyhledávání nebo uživatelem přiřazené spravované identitě pro přístup k databázi.

  1. Připojte se k Visual Studio.

    Připojte se k Visual Studiu

  2. Ověřte se pomocí svého účtu Microsoft Entra.

    Ověřit

  3. Spusťte následující příkazy:

    Zahrňte závorky kolem názvu vyhledávací služby nebo názvu spravované identity přiřazené uživatelem.

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

    Nový dotaz

    Provedení dotazu

Pokud později změníte identitu vyhledávací služby nebo identitu přiřazenou uživatelem po přiřazení oprávnění, musíte odebrat členství role a odebrat uživatele v databázi SQL a potom opakovat přiřazení oprávnění. Odebrání členství role a uživatele můžete provést spuštěním následujících příkazů:

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

2. Přidat přiřazení role

V této části udělíte službě Azure AI Vyhledávač oprávnění ke čtení dat z vašeho SQL Server. Podrobný postup najdete v tématu Přiřazení rolí Azure pomocí portálu Azure.

  1. Na portálu Azure přejděte na stránku Azure SQL Server.

  2. Vyberte Řízení přístupu (IAM).

  3. Vyberte Přidat > přiřadit roli.

    Snímek obrazovky znázorňující stránku Řízení přístupu (IAM) s otevřenou nabídkou Přidat přiřazení role

  4. Na kartě Role, vyberte příslušnou roli Reader.

  5. Na kartě Členové vyberte Spravovaná identita a pak vyberte Vybrat členy.

  6. Vyberte své Azure předplatné.

  7. Pokud používáte spravovanou identitu přiřazenou systémem, vyberte spravovanou identitu přiřazenou systémem, vyhledejte vyhledávací službu a pak ji vyberte.

  8. Pokud používáte spravovanou identitu přiřazenou uživatelem, vyberte spravovanou identitu přiřazenou uživatelem, vyhledejte název spravované identity přiřazené uživatelem a pak ji vyberte.

  9. Na kartě Revize a přiřazení vyberte Zkontrolovat a přiřadit roli.

3. Vytvoření zdroje dat

Vytvořte zdroj dat a zadejte spravovanou identitu přiřazenou systémem nebo spravovanou identitu přiřazenou uživatelem.

Spravovaná identita přiřazená systémem

Rozhraní API REST, portál Azure a Sady Azure SDK podporují spravovanou identitu přiřazenou systémem.

Když se připojujete se spravovanou identitou přiřazenou systémem, jedinou změnou definice zdroje dat je formát vlastnosti "credentials". Zadáte počáteční název katalogu nebo databáze a ID prostředku, které neobsahuje klíč účtu ani heslo. ResourceId musí obsahovat ID předplatného Azure SQL Database, skupinu prostředků SQL Database a název databáze SQL.

Tady je příklad vytvoření zdroje dat pro indexování dat z účtu úložiště pomocí Create Data Source REST API a spravované identity připojovací řetězec. Spravované identity připojovací řetězec má stejný formát pro rozhraní REST API, .NET SDK a portál Azure.

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

{
    "name" : "sql-datasource",
    "type" : "azuresql",
    "credentials" : { 
        "connectionString" : "Database=[SQL database name];ResourceId=/subscriptions/[subscription ID]/resourceGroups/[resource group name]/providers/Microsoft.Sql/servers/[SQL Server name];Connection Timeout=30;"
    },
    "container" : { 
        "name" : "my-table" 
    }
} 

Spravovaná identita přiřazená uživatelem

Rozhraní REST API verze 2026-04-01 a novější podporují připojení založená na spravované identitě přiřazené uživatelem. Když se připojujete pomocí spravované identity přiřazené uživatelem, existují dvě změny definice zdroje dat:

  • Nejprve je formát vlastnosti "credentials" název počátečního katalogu nebo databáze a ID prostředku, který nemá žádný klíč účtu nebo heslo. ResourceId musí obsahovat ID předplatného Azure SQL Database, skupinu prostředků SQL Database a název databáze SQL. Jedná se o stejný formát jako spravovaná identita přiřazená systémem.

  • Za druhé přidejte vlastnost identity, která obsahuje kolekci spravovaných identit přiřazených uživatelem. Při vytváření zdroje dat by se měla poskytnout pouze jedna spravovaná identita přiřazená uživatelem. Nastavte ho na "userAssignedIdentities".

Tady je příklad vytvoření objektu zdroje dat indexeru pomocí zdrojů dat – Vytvoření nebo aktualizace:

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

{
    "name" : "sql-datasource",
    "type" : "azuresql",
    "credentials" : { 
        "connectionString" : "Database=[SQL database name];ResourceId=/subscriptions/[subscription ID]/resourceGroups/[resource group name]/providers/Microsoft.Sql/servers/[SQL Server name];Connection Timeout=30;"
    },
    "container" : { 
        "name" : "my-table" 
    },
    "identity" : { 
        "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
        "userAssignedIdentity" : "/subscriptions/[subscription ID]/resourcegroups/[resource group name]/providers/Microsoft.ManagedIdentity/userAssignedIdentities/[managed identity name]"
    }
}   

4. Vytvoření indexu

Index určuje pole v dokumentu, atributech a dalších konstruktorech, které tvarují vyhledávací prostředí.

Tady je volání rozhraní REST API pro vytvoření indexu s prohledávatelným booktitle polem:

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

5. Vytvoření indexeru

Indexer propojuje zdroj dat s cílovým indexem vyhledávání a poskytuje plán pro automatizaci aktualizace dat. Po vytvoření indexu a zdroje dat můžete indexer vytvořit. Pokud je indexer úspěšný, syntaxe připojení a přiřazení rolí jsou platné.

Tady je volání rozhraní REST API Create Indexer s definicí indexeru Azure SQL. Indexer se spustí při odeslání požadavku.

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

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

Pokud se při pokusu indexeru o připojení ke zdroji dat zobrazí chyba s informací, že klient nemá povolený přístup k serveru, podívejte se na běžné chyby indexeru.

Viz také

indexer pro Azure SQL