Adicionar principais de base de dados para o Azure Data Explorer
O Azure Data Explorer é um serviço de exploração de dados rápido e altamente dimensionável para dados telemétricos e de registo. Neste artigo, irá aprender a adicionar principais de base de dados para o Azure Data Explorer através de C#, Python ou um modelo do Azure Resource Manager (ARM).
Pré-requisitos
Os pré-requisitos variam consoante o método utilizado para adicionar o principal. Selecione o separador relevante para o seu método preferencial.
A lista seguinte descreve os pré-requisitos para adicionar um principal de cluster com C#.
- Uma conta Microsoft ou uma identidade de utilizador Microsoft Entra. Não é necessária uma subscrição do Azure.
- Um cluster e uma base de dados do Azure Data Explorer. Criar um cluster e uma base de dados.
- Visual Studio 2022 Community Edition. Ative o desenvolvimento do Azure durante a configuração do Visual Studio.
- Uma aplicação Microsoft Entra e principal de serviço que pode aceder aos recursos. Guarde o ID do Diretório (inquilino), o ID da Aplicação e o Segredo do Cliente.
- Instale Azure.ResourceManager.Kusto.
- Instale o pacote NuGet Azure.Identity para autenticação.
Adicionar um principal de base de dados
Execute o seguinte código para adicionar um principal de base de dados:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret);
var resourceManagementClient = new ArmClient(credentials, subscriptionId);
var resourceGroupName = "testrg";
//The cluster that is created as part of the Prerequisites
var clusterName = "mykustocluster";
var databaseName = "mykustodatabase";
var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
var cluster = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value;
var database = (await cluster.GetKustoDatabaseAsync(databaseName)).Value;
var databasePrincipalAssignments = database.GetKustoDatabasePrincipalAssignments();
var databasePrincipalAssignmentName = "mykustodatabaseprincipalassignment";
var principalId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //User email, application ID, or security group name
var role = KustoDatabasePrincipalRole.Admin; //Admin, Ingestor, Monitor, User, UnrestrictedViewers, Viewer
var tenantIdForPrincipal = new Guid("xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx");
var principalType = KustoPrincipalAssignmentType.App; //User, App, or Group
var databasePrincipalAssignmentData = new KustoDatabasePrincipalAssignmentData
{
DatabasePrincipalId = principalId, Role = role, PrincipalType = principalType, TenantId = tenantIdForPrincipal
};
await databasePrincipalAssignments.CreateOrUpdateAsync(
WaitUntil.Completed, databasePrincipalAssignmentName, databasePrincipalAssignmentData
);
Definição | Valor sugerido | Descrição do campo |
---|---|---|
tenantId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxx | O ID do inquilino. Também conhecido como ID de diretório. |
subscriptionId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxx | O ID da subscrição que utiliza para a criação de recursos. |
clientId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxx | O ID de cliente da aplicação que pode aceder aos recursos no seu inquilino. |
clientSecret | Marcador de PosiçãoClientSecret | O segredo do cliente da aplicação que pode aceder aos recursos no seu inquilino. |
resourceGroupName | testrg | O nome do grupo de recursos que contém o cluster. |
clusterName | mykustocluster | O nome do cluster. |
databaseName | mykustodatabase | O nome da base de dados. |
databasePrincipalAssignmentName | mykustodatabaseprincipalassignment | O nome do recurso principal da base de dados. |
principalId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxx | O ID principal, que pode ser o e-mail de utilizador, o ID da aplicação ou o nome do grupo de segurança. |
role | Administração | A função do principal da base de dados, que pode ser "Administração", "Ingestor", "Monitor", "Utilizador", "UnrestrictedViewers", "Visualizador". |
tenantIdForPrincipal | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxx | O ID do inquilino do principal. |
principalType | Aplicação | O tipo do principal, que pode ser "Utilizador", "Aplicação" ou "Grupo" |