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
- Ett Azure Data Explorer-kluster och en databas. Skapa ett kluster och en databas.
- Databas Admin behörigheter i Azure Data Explorer-databasen.
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.
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.
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örcluster
.
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:
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.
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 mycontainer
mystorageaccount
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.