Aggiungere entità di database per Esplora dati di Azure tramite C #Add database principals for Azure Data Explorer by using C#

Esplora dati di Azure è un servizio di esplorazione dati rapido e a scalabilità elevata per dati di log e di telemetria.Azure Data Explorer is a fast and highly scalable data exploration service for log and telemetry data. In questo articolo si aggiungono entità di database per Esplora dati di Azure con C#.In this article, you add database principals for Azure Data Explorer by using C#.

PrerequisitiPrerequisites

Installare NuGet C#Install C# NuGet

AutenticazioneAuthentication

Per eseguire l'esempio seguente, sono necessarie un'applicazione Azure Active Directory (Azure AD) e un'entità servizio che possano accedere alle risorse.To run the following example, you need an Azure Active Directory (Azure AD) application and service principal that can access resources. Per creare un'applicazione Azure AD gratuita e aggiungere un'assegnazione di ruolo a livello di sottoscrizione, vedere Creare un'applicazione Azure AD.To create a free Azure AD application and add role assignment at the subscription level, see Create an Azure AD application. Sono necessari anche l'ID directory (tenant), l'ID applicazione e il segreto client.You also need the directory (tenant) ID, application ID, and client secret.

Aggiungere un'entità di databaseAdd a database principal

Nell'esempio seguente viene illustrato come aggiungere un'entità di database a livello di codice.The following example shows you how to add a database principal programmatically.

var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";//Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";//Application ID
var clientSecret = "xxxxxxxxxxxxxx";//Client Secret
var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";

var serviceCreds = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret);
var kustoManagementClient = new KustoManagementClient(serviceCreds)
{
    SubscriptionId = subscriptionId
};

var resourceGroupName = "testrg";
//The cluster and database that are created as part of the Prerequisites
var clusterName = "mykustocluster";
var databaseName = "mykustodatabase";
string principalAssignmentName = "databasePrincipalAssignment1";
string principalId = "xxxxxxxx";//User email, application ID, or security group name
string role = "Admin";//Admin, Ingestor, Monitor, User, UnrestrictedViewers, Viewer
string tenantIdForPrincipal = tenantId;
string principalType = "App";//User, App, or Group

var databasePrincipalAssignment = new DatabasePrincipalAssignment(principalId, role, principalType, tenantId: tenantIdForPrincipal);
await kustoManagementClient.DatabasePrincipalAssignments.CreateOrUpdateAsync(resourceGroupName, clusterName, databaseName, principalAssignmentName, databasePrincipalAssignment);
ImpostazioneSetting Valore consigliatoSuggested value Descrizione campoField description
TenantIdtenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx ID tenant.Your tenant ID. Noto anche come ID directory.Also known as directory ID.
subscriptionIdsubscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx ID sottoscrizione usato per la creazione di risorse.The subscription ID that you use for resource creation.
clientIdclientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx ID client dell'applicazione che può accedere alle risorse nel tenant.The client ID of the application that can access resources in your tenant.
clientSecretclientSecret xxxxxxxxxxxxxxxxxxxxxxxxxxxx Il segreto client dell'applicazione che può accedere alle risorse nel tenant.The client secret of the application that can access resources in your tenant.
resourceGroupNameresourceGroupName testrgtestrg Nome del gruppo di risorse che contiene il cluster.The name of the resource group containing your cluster.
clusterNameclusterName mykustoclustermykustocluster Nome del cluster.The name of your cluster.
databaseNamedatabaseName mykustodatabasemykustodatabase Nome del database.The name of your database.
principalAssignmentNameprincipalAssignmentName databasePrincipalAssignment1databasePrincipalAssignment1 Nome della risorsa dell'entità di database.The name of your database principal resource.
principalIdprincipalId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx ID principale, che può essere un indirizzo di posta elettronica dell'utente, un ID applicazione o un nome di gruppo di sicurezza.The principal ID, which can be user email, application ID, or security group name.
ruolorole AdminAdmin Il ruolo dell'entità di database, che può essere ' admin ',' Ingeritor ',' Monitor ',' User ',' UnrestrictedViewers ',' Viewer '.The role of your database principal, which can be 'Admin', 'Ingestor', 'Monitor', 'User', 'UnrestrictedViewers', 'Viewer'.
tenantIdForPrincipaltenantIdForPrincipal xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx ID tenant dell'entità.The tenant ID of the principal.
principalTypeprincipalType AppApp Tipo dell'entità, che può essere ' User ',' app ' o ' Group 'The type of the principal, which can be 'User', 'App', or 'Group'

Passaggi successiviNext steps