Database-principals toevoegen voor Azure Data Explorer
Azure Data Explorer is een snelle en zeer schaalbare service voor gegevensverkenning voor telemetrische gegevens en gegevens uit logboeken. In dit artikel leert u hoe u database-principals voor Azure Data Explorer toevoegt met behulp van C#, Python of een ARM-sjabloon (Azure Resource Manager).
Vereisten
De vereisten variƫren op basis van de methode die wordt gebruikt om de principal toe te voegen. Kies het relevante tabblad voor de gewenste methode.
De volgende lijst bevat een overzicht van de vereisten voor het toevoegen van een clusterprincipal met C#.
- Een Microsoft-account of een Microsoft Entra gebruikersidentiteit. Er is geen Azure-abonnement vereist.
- Een Azure Data Explorer-cluster en -database. Maak een cluster en database.
- Visual Studio 2022 Community Edition. Schakel Azure-ontwikkeling in tijdens de installatie van Visual Studio.
- Een Microsoft Entra toepassing en service-principal die toegang hebben tot resources. Sla de map-id (tenant),de toepassings-id en het clientgeheim op.
- Installeer Azure.ResourceManager.Kusto.
- Installeer het Azure.Identity NuGet-pakket voor verificatie.
Een database-principal toevoegen
Voer de volgende code uit om een database-principal toe te voegen:
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
);
Instelling | Voorgestelde waarde | Beschrijving van veld |
---|---|---|
tenantId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Uw tenant-id. Ook wel bekend als map-id. |
subscriptionId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | De abonnements-id die u gebruikt voor het maken van resources. |
clientId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | De client-id van de toepassing die toegang heeft tot resources in uw tenant. |
clientSecret | PlaceholderClientSecret | Het clientgeheim van de toepassing die toegang heeft tot resources in uw tenant. |
resourceGroupName | testrg | De naam van de resourcegroep die uw cluster bevat. |
clusterName | mykustocluster | De naam van uw cluster. |
databaseName | mykustodatabase | De naam van uw database. |
databasePrincipalAssignmentName | mykustodatabaseprincipalassignment | De naam van uw database-principalresource. |
principalId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | De principal-id, die het e-mailadres van de gebruiker, de toepassings-id of de naam van de beveiligingsgroep kan zijn. |
role | Beheerder | De rol van uw database-principal, die 'Beheer', 'Ingestor', 'Monitor', 'Gebruiker', 'UnrestrictedViewers', 'Viewer' kan zijn. |
tenantIdForPrincipal | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | De tenant-id van de principal. |
principalType | App | Het type principal, dat 'Gebruiker', 'App' of 'Groep' kan zijn |