Поделиться через


Добавление субъектов кластера для Azure Data Explorer

Обозреватель данных Azure — это быстрая и высокомасштабируемая служба для изучения данных журналов и телеметрии. Из этой статьи вы узнаете, как добавить субъекты кластера для Azure Data Explorer с помощью C#, Python или шаблона Azure Resource Manager (ARM).

Примеры кода на основе предыдущих версий пакета 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 Идентификатор клиента. Также известен как идентификатор каталога.
subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор подписки, используемой для создания ресурсов.
clientid xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор клиента приложения, которое имеет доступ к ресурсам в клиенте.
clientSecret PlaceholderClientSecret Секрет клиента приложения, которое имеет доступ к ресурсам в клиенте.
имя_группы_ресурсов testrg Имя группы ресурсов, содержащей ваш кластер.
clusterName mykustocluster Имя вашего кластера.
clusterPrincipalAssignmentName mykustoclusterprincipalassignment Имя вашего ресурса субъекта кластера.
principalId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор субъекта, который может быть адресом электронной почты пользователя, идентификатором приложения или именем группы безопасности.
роль AllDatabasesAdmin Роль вашего субъекта кластера, которая может быть AllDatabasesAdmin, AllDatabasesMonitor или AllDatabasesViewer.
tenantIdForPrincipal xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор клиента субъекта.
principalType Приложение Тип субъекта, например «Пользователь», «Приложение» или «Группа»