添加 Azure 数据资源管理器的数据库主体

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

先决条件

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

以下列表概述了使用 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 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
);
设置 建议的值 字段说明
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 群集的名称。
databaseName mykustodatabase 数据库名称。
databasePrincipalAssignmentName mykustodatabaseprincipalassignment 数据库主体资源的名称。
principalId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 主体 ID,可以是用户电子邮件、应用程序 ID 或安全组名称。
角色 (role) 管理员 数据库主体的角色,可以是“Admin”、“Ingestor”、“Monitor”、“User”、“UnrestrictedViewers”和“Viewer”。
tenantIdForPrincipal xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 主体的租户 ID。
principalType 应用 主体的类型,可以是“User”、“App”或“Group”