Autenticare tabelle esterne con identità gestite
Una tabella esterna è un'entità dello schema che fa riferimento ai dati archiviati all'esterno del database Esplora dati di Azure. Le tabelle esterne possono essere definite per fare riferimento ai dati in Archiviazione di Azure o SQL Server e supportano vari metodi di autenticazione.
Questo articolo illustra come creare una tabella esterna che esegue l'autenticazione con un'identità gestita.
Prerequisiti
- Un cluster e un database di Esplora dati di Azure. Creare un cluster e un database.
- Autorizzazioni di amministratore del database nel database Esplora dati di Azure.
1 - Configurare un'identità gestita da usare con tabelle esterne
Sono disponibili due tipi di identità gestite:
Assegnata dal sistema: un'identità assegnata dal sistema è connessa al cluster e viene rimossa quando il cluster viene rimosso. È consentita una sola identità assegnata dal sistema per ogni cluster.
Assegnata dall'utente: un'identità gestita assegnata dall'utente è una risorsa di Azure autonoma. È possibile assegnare più identità assegnate dall'utente al cluster.
Selezionare una delle schede seguenti per configurare il tipo di identità gestita preferito.
Seguire la procedura per aggiungere un'identità assegnata dall'utente al cluster e salvare l'ID oggetto (entità) per usarlo in un secondo momento.
Eseguire il comando .alter-merge policy managed_identity . Questo comando imposta un criterio di identità gestita nel cluster che consente l'uso dell'identità gestita con tabelle esterne. Sostituire
<objectId>
con l'ID oggetto (entità)..alter-merge cluster policy managed_identity ```[ { "ObjectId": "<objectId>", "AllowedUsages": "ExternalTable" } ]```
Nota
Per impostare i criteri in un database specifico, usare
database <DatabaseName>
invece dicluster
.
2 - Concedere le autorizzazioni per le risorse esterne per l'identità gestita
Per eseguire correttamente l'autenticazione, l'identità gestita deve disporre delle autorizzazioni per la risorsa esterna.
Selezionare la scheda per il tipo pertinente di risorsa esterna e assegnare le autorizzazioni necessarie.
La tabella seguente illustra le autorizzazioni necessarie per risorsa esterna. Per importare o eseguire query sui dati dalla risorsa esterna, concedere all'identità gestita le autorizzazioni di lettura. Per esportare i dati nella risorsa esterna, concedere le autorizzazioni di scrittura dell'identità gestita.
Archivio dati esterno | Autorizzazioni di lettura | Autorizzazioni di scrittura | Concedere le autorizzazioni |
---|---|---|---|
Archiviazione BLOB di Azure | Lettore dei dati del BLOB di archiviazione | Collaboratore ai dati del BLOB di archiviazione | Assegnare un ruolo di Azure |
Data Lake Storage Gen2 | Lettore dei dati del BLOB di archiviazione | Collaboratore ai dati del BLOB di archiviazione | Assegnare un ruolo di Azure |
Data Lake Storage Gen1 | Lettore | Collaboratore | Assegnare un ruolo di Azure |
3 - Creare una tabella esterna
Esistono due tipi di tabelle esterne che supportano l'autenticazione con identità gestite: Archiviazione di Azure tabelle esterne e tabelle esterne di SQL Server.
Selezionare una delle schede seguenti per configurare un Archiviazione di Azure o una tabella esterna di SQL Server.
Per creare una tabella esterna Archiviazione di Azure, seguire questa procedura:
Creare un stringa di connessione basato sui modelli di stringa di connessione di archiviazione. Questa stringa indica la risorsa a cui accedere e le relative informazioni di autenticazione. Specificare il metodo di autenticazione dell'identità gestita.
Eseguire la tabella .create o .alter external per creare la tabella. Usare il stringa di connessione del passaggio precedente come argomento storageConnectionString.
Esempio
Il comando seguente crea MyExternalTable
che fa riferimento a dati in formato CSV in in mystorageaccount
mycontainer
in Archiviazione BLOB di Azure. La tabella include due colonne, una per un numero intero x
e una per una stringa s
. Il stringa di connessione termina con ;managed_identity=system
, che indica di usare un'identità gestita assegnata dal sistema per l'autenticazione per accedere all'archivio dati.
.create external table MyExternalTable (x:int, s:string) kind=storage dataformat=csv
(
h@'https://mystorageaccount.blob.core.windows.net/mycontainer;managed_identity=system'
)
Nota
Per eseguire l'autenticazione con un'identità gestita assegnata dall'utente, sostituire system
con l'ID oggetto identità gestita.