Autentisera externa tabeller med hanterade identiteter

En extern tabell är en schemaentitet som refererar till data som lagras utanför Azure Data Explorer-databasen. Externa tabeller kan definieras för att referera till data i Azure Storage eller SQL Server och stödja olika autentiseringsmetoder.

I den här artikeln får du lära dig hur du skapar en extern tabell som autentiserar med en hanterad identitet.

Förutsättningar

1 – Konfigurera en hanterad identitet för användning med externa tabeller

Det finns två typer av hanterade identiteter:

  • Systemtilldelad: En systemtilldelad identitet är ansluten till klustret och tas bort när klustret tas bort. Endast en systemtilldelad identitet tillåts per kluster.

  • Användartilldelad: En användartilldelad hanterad identitet är en fristående Azure-resurs. Flera användartilldelade identiteter kan tilldelas till klustret.

Välj någon av följande flikar för att konfigurera önskad hanterad identitetstyp.

  1. Följ stegen för att lägga till en användartilldelad identitet i klustret och spara objekt-ID:t (huvudnamn) för senare användning.

  2. Kör följande .alter-merge-princip managed_identity kommando. Det här kommandot anger en princip för hanterad identitet i klustret som gör att den hanterade identiteten kan användas med externa tabeller. Ersätt <objectId> med objekt-ID:t (huvudnamn) från föregående steg.

    .alter-merge cluster policy managed_identity ```[
        {
          "ObjectId": "<objectId>",
          "AllowedUsages": "ExternalTable"
        }
    ]```
    

    Anteckning

    Om du vill ange principen för en specifik databas använder du database <DatabaseName> i stället för cluster.

2 – Bevilja den hanterade identiteten externa resursbehörigheter

Den hanterade identiteten måste ha behörighet till den externa resursen för att kunna autentiseras.

Välj fliken för relevant typ av extern resurs och tilldela de behörigheter som krävs.

I följande tabell visas de behörigheter som krävs av en extern resurs. Om du vill importera eller fråga efter data från den externa resursen beviljar du läsbehörighet för den hanterade identiteten. Om du vill exportera data till den externa resursen beviljar du skrivbehörigheter för den hanterade identiteten.

Externt datalager Läsbehörigheter Skrivbehörighet Bevilja behörigheterna
Azure Blob Storage Storage Blob Data-läsare Storage Blob Data-deltagare Tilldela en Azure-roll
Data Lake Storage Gen2 Storage Blob Data-läsare Storage Blob Data-deltagare Tilldela en Azure-roll
Data Lake Storage Gen1 Läsare Deltagare Tilldela en Azure-roll

3 – Skapa en extern tabell

Det finns två typer av externa tabeller som stöder autentisering med hanterade identiteter: externa Azure Storage-tabeller och SQL Server externa tabeller.

Välj någon av följande flikar för att konfigurera en Azure Storage- eller SQL Server extern tabell.

Gör följande för att skapa en extern Azure Storage-tabell:

  1. Skapa en anslutningssträng baserat på lagringsmallarna anslutningssträng. Den här strängen anger resursen för åtkomst och dess autentiseringsinformation. Ange autentiseringsmetoden för hanterad identitet.

  2. Kör den externa tabellen .create eller .alter för att skapa tabellen. Använd anslutningssträng från föregående steg som argumentet storageConnectionString.

Exempel

Följande kommando skapar MyExternalTable som refererar till CSV-formaterade data i mycontainermystorageaccount i i Azure Blob Storage. Tabellen har två kolumner, en för ett heltal x och en för en sträng s. Anslutningssträng slutar med ;managed_identity=system, vilket anger att du använder en systemtilldelad hanterad identitet för autentisering för att komma åt datalagret.

.create external table MyExternalTable (x:int, s:string) kind=storage dataformat=csv 
( 
    h@'https://mystorageaccount.blob.core.windows.net/mycontainer;managed_identity=system' 
)

Anteckning

Om du vill autentisera med en användartilldelad hanterad identitet ersätter system du med objekt-ID:t för hanterad identitet.