Autentisera externa tabeller med hanterade identiteter

En extern tabell är en schemaentitet som refererar till data som lagras utanför den Azure Data Explorer databasen. Externa tabeller kan definieras för referensdata i Azure Storage eller SQL Server och stöder 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 kommandot .alter-merge policy managed_identity . 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).

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

    Note

    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 nödvändiga behörigheter.

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örighet för den hanterade identiteten.

Externt datalager Läsbehörigheter Skrivbehörighet Bevilja behörigheterna
Azure Blob Storage-lagringstjänst Storage Blob-dataläsare Storage Blob Data-bidragsgivare Tilldela en roll i Azure
Data Lake Storage Gen2 Storage Blob-dataläsare Storage Blob Data-bidragsgivare Tilldela en Azure-roll

3 – Skapa en extern tabell

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

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

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

  1. Skapa en anslutningssträng baserat på mallarna för lagringsanslutningssträngar. 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ängen från föregående steg som argumentet storageConnectionString.

Example

Följande kommando skapar MyExternalTable som refererar till data i CSV-format i mycontainer i mystorageaccount i Azure Blob Storage. Tabellen har två kolumner, en för ett heltal x och en för en sträng s. Connection string slutar med ;managed_identity=system, som anger att du ska använda en systemtilldelad hanterad identitet för autentisering för att få åtkomst till datalagret.

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

Note

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