Hinzufügen von Datenbankprinzipalen für Azure Data Explorer

Azure-Daten-Explorer ist ein schneller und hochgradig skalierbarer Dienst zur Untersuchung von Daten (Protokoll- und Telemetriedaten). In diesem Artikel erfahren Sie, wie Sie Datenbankprinzipale für Azure Data Explorer mithilfe von C#, Python oder einer Arm-Vorlage (Azure Resource Manager) hinzufügen.

Voraussetzungen

Die Voraussetzungen variieren je nach der Methode, die zum Hinzufügen des Prinzipals verwendet wird. Wählen Sie die relevante Registerkarte für Ihre bevorzugte Methode aus.

In der folgenden Liste werden die Voraussetzungen zum Hinzufügen eines Clusterprinzipals mit C# beschrieben.

Hinzufügen eines Datenbankprinzipals

Führen Sie den folgenden Code aus, um einen Datenbankprinzipal hinzuzufügen:

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
);
Einstellung Empfohlener Wert Feldbeschreibung
tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Ihre Mandanten-ID. Wird auch als Verzeichnis-ID bezeichnet.
subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Die Abonnement-ID, die Sie für die Ressourcenerstellung verwenden.
clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Die Client-ID der Anwendung, die auf Ressourcen in Ihrem Mandanten zugreifen kann.
clientSecret PlaceholderClientSecret Das Clientgeheimnis der Anwendung, die auf Ressourcen in Ihrem Mandanten zugreifen kann.
resourceGroupName testrg Der Name der Ressourcengruppe, die Ihren Cluster enthält.
clusterName mykustocluster Der Name Ihres Clusters.
databaseName mykustodatabase Der Name Ihrer Datenbank.
databasePrincipalAssignmentName mykustodatabaseprincipalassignment Der Name Ihrer Datenbankprinzipalressource.
principalId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Die Prinzipal-ID. Dies kann die E-Mail-Adresse des Benutzers, die Anwendungs-ID oder der Name der Sicherheitsgruppe sein.
Rolle (role) Administrator Die Rolle Ihres Datenbankprinzipals, die „Admin“, „Ingestor“, „Monitor“, „Benutzer“, „UnrestrictedViewers“'oder „Viewer“ sein kann.
tenantIdForPrincipal xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Die Mandanten-ID des Prinzipals.
principalType App Der Typ des Prinzipals, der „Benutzer“, „App“ oder „Gruppe“ sein kann.