向 Azure 数据资源管理器添加群集主体

Azure 数据资源管理器是一项快速且高度可缩放的数据探索服务,适用于日志和遥测数据。 本文介绍如何使用 C#、Python 或 Azure 资源管理器 (ARM) 模板向 Azure 数据资源管理器添加群集主体。

有关基于以前的 SDK 版本的代码示例,请参阅存档的文章

先决条件

先决条件因用于添加主体的方法而异。 请选择与你的首选方法相关的选项卡。

以下列表概述了使用 C# 添加群集主体的先决条件。

添加群集主体

运行以下代码以添加群集主体:

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 subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
var cluster = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value;
var clusterPrincipalAssignments = cluster.GetKustoClusterPrincipalAssignments(); 
var clusterPrincipalAssignmentName = "mykustoclusterprincipalassignment";
var principalId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //User email, application ID, or security group name
var role = KustoClusterPrincipalRole.AllDatabasesAdmin; //AllDatabasesAdmin or AllDatabasesViewer
var tenantIdForPrincipal = new Guid("xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx");
var principalType = KustoPrincipalAssignmentType.App; //User, App, or Group
var clusterPrincipalAssignmentData = new KustoClusterPrincipalAssignmentData
{
    ClusterPrincipalId = principalId, Role = role, PrincipalType = principalType, TenantId = tenantIdForPrincipal
};
await clusterPrincipalAssignments.CreateOrUpdateAsync(
    WaitUntil.Completed, clusterPrincipalAssignmentName, clusterPrincipalAssignmentData
);
设置 建议的值 字段说明
tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 租户 ID。 也称为目录 ID。
subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 用于创建资源的订阅 ID。
clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 可以访问租户中资源的应用程序的客户端 ID。
clientSecret PlaceholderClientSecret 可以访问租户中资源的应用程序的客户端密码。
resourceGroupName testrg 包含群集的资源组的名称。
clusterName mykustocluster 群集的名称。
clusterPrincipalAssignmentName mykustoclusterprincipalassignment 群集主体资源的名称。
principalId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 主体 ID,可以是用户电子邮件、应用程序 ID 或安全组名称。
角色 (role) AllDatabasesAdmin 群集主体的角色,可以是“AllDatabasesAdmin”、“AllDatabasesMonitor”或“AllDatabasesViewer”。
tenantIdForPrincipal xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 主体的租户 ID。
principalType 应用 主体的类型,可以是“User”、“App”或“Group”