Compartilhar via


Adicionar entidades de segurança de banco de dados para o Azure Data Explorer

O Azure Data Explorer é um serviço de exploração de dados rápido e altamente escalonável para dados de log e telemetria. Neste artigo, você aprenderá a adicionar entidades de banco de dados para o Azure Data Explorer usando C#, Python ou um modelo do ARM (Azure Resource Manager).

Pré-requisitos

Os pré-requisitos variam de acordo com o método usado para adicionar a entidade de segurança. Escolha a guia relevante para seu método preferido.

A lista a seguir descreve os pré-requisitos para adicionar uma entidade de cluster com C#.

Adicionar uma entidade de segurança do banco de dados

Execute o seguinte código para adicionar uma entidade de banco 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
);
Configuração Valor sugerido Descrição do campo
tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx ID do locatário. Também conhecida como ID do diretório.
subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx A ID da assinatura que você usa para a criação de recursos.
clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx A ID do cliente do aplicativo que pode acessar recursos em seu locatário.
clientSecret PlaceholderClientSecret O segredo do cliente do aplicativo que pode acessar recursos em seu locatário.
resourceGroupName testrg O nome do grupo de recursos que contém o seu cluster.
clusterName mykustocluster O nome do seu cluster.
databaseName mykustodatabase O nome do banco de dados.
databasePrincipalAssignmentName mykustodatabaseprincipalassignment O nome do recurso da entidade de segurança do seu banco de dados.
principalId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx A ID da entidade de segurança, que pode ser o email do usuário, a ID do aplicativo ou o nome do grupo de segurança.
função Administrador A função da entidade de segurança do seu banco de dados, que pode ser 'Admin', 'Ingestor', 'Monitor', 'User', 'UnrestrictedViewers' e 'Viewer'.
tenantIdForPrincipal xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx A ID do locatário da entidade de segurança.
principalType Aplicativo O tipo da entidade de segurança, que pode ser 'User', 'App' ou 'Group'