Добавление субъектов базы данных для Azure Data Explorer
Обозреватель данных Azure — это быстрая и высокомасштабируемая служба для изучения данных журналов и телеметрии. Из этой статьи вы узнаете, как добавить субъекты базы данных для azure Data Explorer с помощью C#, Python или шаблона Azure Resource Manager (ARM).
Предварительные требования
Предварительные требования зависят от метода, используемого для добавления субъекта. Выберите соответствующую вкладку для предпочитаемого метода.
В следующем списке описаны предварительные требования для добавления субъекта кластера с помощью C#.
- Учетная запись Майкрософт или удостоверение пользователя Microsoft Entra. Подписка Azure не обязательна.
- Кластер и база данных Azure Data Explorer. Создайте кластер и базу данных.
- Visual Studio 2022 Community Edition. Включите разработку в Azure во время установки Visual Studio.
- Приложение Microsoft Entra и субъект-служба, которые могут получать доступ к ресурсам. Сохраните идентификатор каталога (клиента),идентификатор приложения и секрет клиента.
- Установите Azure.ResourceManager.Kusto.
- Установите пакет NuGet Azure.Identity для проверки подлинности.
Добавление субъекта базы данных
Выполните следующий код, чтобы добавить субъект базы данных:
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 | Приложение | Тип субъекта, например «Пользователь», «Приложение» или «Группа» |