Partilhar via


Autenticar tabelas externas com identidades geridas

Uma tabela externa é uma entidade de esquema que referencia dados armazenados fora da base de dados do Azure Data Explorer. As tabelas externas podem ser definidas para referenciar dados no Armazenamento do Azure ou SQL Server e suportar vários métodos de autenticação.

Neste artigo, irá aprender a criar uma tabela externa que se autentica com uma identidade gerida.

Pré-requisitos

1 - Configurar uma identidade gerida para utilização com tabelas externas

Existem dois tipos de identidades geridas:

  • Atribuída pelo sistema: uma identidade atribuída pelo sistema está ligada ao cluster e é removida quando o cluster é removido. Só é permitida uma identidade atribuída pelo sistema por cluster.

  • Atribuído pelo utilizador: uma identidade gerida atribuída pelo utilizador é um recurso autónomo do Azure. Podem ser atribuídas várias identidades atribuídas pelo utilizador ao cluster.

Selecione um dos seguintes separadores para configurar o tipo de identidade gerida preferencial.

  1. Siga os passos para Adicionar uma identidade atribuída pelo utilizador ao cluster e guarde o ID do Objeto (principal) para utilização posterior.

  2. Execute o seguinte comando managed_identity de política .alter-merge . Este comando define uma política de identidade gerida no cluster que permite que a identidade gerida seja utilizada com tabelas externas. Substitua pelo <objectId>ID de Objeto (principal) do passo anterior.

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

    Nota

    Para definir a política numa base de dados específica, utilize database <DatabaseName> em vez de cluster.

2 - Conceder permissões de recursos externos à identidade gerida

A identidade gerida tem de ter permissões para o recurso externo para se autenticar com êxito.

Selecione o separador para o tipo relevante de recurso externo e atribua as permissões necessárias.

A tabela seguinte mostra as permissões necessárias por recurso externo. Para importar ou consultar dados do recurso externo, conceda as permissões de leitura da identidade gerida. Para exportar dados para o recurso externo, conceda as permissões de escrita da identidade gerida.

Arquivo de dados externos Permissões de leitura Permissões de escrita Conceder as permissões
Armazenamento de Blobs do Azure Leitor de Dados do Armazenamento de Blobs Contribuinte de Dados do Armazenamento de Blobs Atribuir uma função do Azure
Data Lake Storage Gen2 Leitor de Dados do Armazenamento de Blobs Contribuinte de Dados do Armazenamento de Blobs Atribuir uma função do Azure
Ger1 de Armazenamento do Data Lake Leitor Contribuinte Atribuir uma função do Azure

3 - Criar uma tabela externa

Existem dois tipos de tabelas externas que suportam a autenticação com identidades geridas: tabelas externas do Armazenamento do Azure e SQL Server tabelas externas.

Selecione um dos seguintes separadores para configurar um Armazenamento do Azure ou SQL Server tabela externa.

Para criar uma tabela externa do Armazenamento do Azure, siga os seguintes passos:

  1. Crie uma cadeia de ligação com base nos modelos de cadeia de ligação de armazenamento. Esta cadeia indica o recurso a aceder e as respetivas informações de autenticação. Especifique o método de autenticação de identidade gerida.

  2. Execute a tabela .create ou .alter externa para criar a tabela. Utilize o cadeia de ligação do passo anterior como o argumento storageConnectionString.

Exemplo

O comando seguinte cria MyExternalTable que se refere a dados formatados em CSV em mycontainer de mystorageaccount no Armazenamento de Blobs do Azure. A tabela tem duas colunas, uma para um número inteiro x e outra para uma cadeia s. A cadeia de ligação termina com ;managed_identity=system, o que indica a utilização de uma identidade gerida atribuída pelo sistema para autenticação para aceder ao arquivo de dados.

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

Nota

Para autenticar com uma identidade gerida atribuída pelo utilizador, substitua system pelo ID do objeto de identidade gerida.