Externe tabellen verifiëren met beheerde identiteiten

Een externe tabel is een schema-entiteit die verwijst naar gegevens die buiten de Azure Data Explorer-database zijn opgeslagen. Externe tabellen kunnen worden gedefinieerd om te verwijzen naar gegevens in Azure Storage of SQL Server en ondersteunen verschillende verificatiemethoden.

In dit artikel leert u hoe u een externe tabel maakt die wordt geverifieerd met een beheerde identiteit.

Prerequisites

1 - Een beheerde identiteit configureren voor gebruik met externe tabellen

Er zijn twee typen beheerde identiteiten:

  • Door het systeem toegewezen: een door het systeem toegewezen identiteit is verbonden met uw cluster en wordt verwijderd wanneer het cluster wordt verwijderd. Per cluster is slechts één door het systeem toegewezen identiteit toegestaan.

  • Door de gebruiker toegewezen: een door de gebruiker toegewezen beheerde identiteit is een zelfstandige Azure-resource. Meerdere door de gebruiker toegewezen identiteiten kunnen worden toegewezen aan uw cluster.

Selecteer een van de volgende tabbladen om het voorkeurstype beheerde identiteit in te stellen.

  1. Volg de stappen om een door de gebruiker toegewezen identiteit toe te voegen aan uw cluster en sla de object-id (principal) op voor later gebruik.

  2. Voer de opdracht .alter-merge policy managed_identity uit. Met deze opdracht stelt u een beleid voor beheerde identiteit in op het cluster waarmee de beheerde identiteit kan worden gebruikt met externe tabellen. Vervang <objectId> door de Object-id (principal).

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

    Note

    Als u het beleid voor een specifieke database wilt instellen, gebruikt database <DatabaseName> u in plaats van cluster.

2 - Verleen de beheerde identiteit machtigingen voor externe resources

De beheerde identiteit moet machtigingen hebben voor de externe resource om te kunnen verifiëren.

Selecteer het tabblad voor het relevante type externe resource en wijs de vereiste machtigingen toe.

In de volgende tabel ziet u de vereiste machtigingen per externe resource. Als u gegevens uit de externe resource wilt importeren of er query's op wilt uitvoeren, moet u de leesmachtigingen voor de beheerde identiteit verlenen. Als u gegevens wilt exporteren naar de externe resource, verleent u schrijfmachtigingen voor de beheerde identiteit.

Externe gegevensopslag Leesrechten Schrijfmachtigingen De machtigingen verlenen
Azure Blob Storage (opslagdienst van Azure) Lezer van Storage Blob-gegevens Inzender voor Storage Blob-gegevens Een Azure-rol toewijzen
Data Lake Storage Gen2 Lezer van Storage Blob-gegevens Inzender voor Storage Blob-gegevens Een Azure-rol toewijzen

3 - Een externe tabel maken

Er zijn twee typen externe tabellen die ondersteuning bieden voor verificatie met beheerde identiteiten: Azure Storage externe tabellen en SQL Server externe tabellen.

Selecteer een van de volgende tabbladen om een externe tabel van Azure Storage of SQL Server in te stellen.

Als u een Azure Storage externe tabel wilt maken, voert u de volgende stappen uit:

  1. Maak een verbindingsreeks op basis van de -opslagverbindingsreekssjablonen. Deze tekenreeks geeft aan tot welke resource toegang wordt verkregen en bevat de authenticatiegegevens. Geef de verificatiemethode voor beheerde identiteit op.

  2. Voer de externe tabel .create of .alter uit om de tabel te maken. Gebruik de verbindingsreeks uit de vorige stap als het argument storageConnectionString.

Voorbeeld

Met de volgende opdracht maakt u MyExternalTable dat verwijst naar CSV-geformatteerde gegevens in mycontainer van mystorageaccount in Azure Blob Storage. De tabel heeft twee kolommen, één voor een geheel getal x en één voor een tekenreeks s. De verbindingsreeks eindigt met ;managed_identity=system, wat aangeeft dat een door het systeem toegewezen beheerde identiteit moet worden gebruikt voor verificatie om toegang te krijgen tot het gegevensarchief.

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

Note

Als u wilt verifiëren met een door de gebruiker toegewezen beheerde identiteit, vervangt u deze door system de object-id van de beheerde identiteit.