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


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

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

Предварительные требования

Предварительные требования зависят от метода, используемого для добавления субъекта. Выберите соответствующую вкладку для предпочитаемого метода.

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