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.
- Ein Microsoft-Konto oder eine Microsoft Entra Benutzeridentität. Ein Azure-Abonnement ist nicht erforderlich.
- Schnellstart: Erstellen eines Azure Data Explorer-Clusters und einer Datenbank. Erstellen eines Clusters und einer Datenbank
- Visual Studio 2022 Community Edition. Aktivieren Sie die Azure-Entwicklung während des Visual Studio-Setups.
- Eine Microsoft Entra Anwendung und Dienstprinzipal, die auf Ressourcen zugreifen können. Speichern Sie die Verzeichnis-ID (Mandanten-ID),die Anwendungs-ID und den geheimen Clientschlüssel.
- Installieren Sie Azure.ResourceManager.Kusto.
- Installieren Sie das NuGet-Paket Azure.Identity für die Authentifizierung.
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. |