Přidání objektů databáze pro Azure Data Explorer
Průzkumník dat Azure je rychlá a vysoce škálovatelná služba pro zkoumání dat protokolů a telemetrie. V tomto článku se dozvíte, jak přidat objekty zabezpečení databáze pro Azure Data Explorer pomocí C#, Pythonu nebo šablony Azure Resource Manager (ARM).
Požadavky
Požadavky se liší v závislosti na metodě použité k přidání objektu zabezpečení. Zvolte příslušnou kartu pro upřednostňovanou metodu.
Následující seznam popisuje požadavky na přidání objektu zabezpečení clusteru pomocí jazyka C#.
- Účet Microsoft nebo identita uživatele Microsoft Entra. Předplatné Azure se nevyžaduje.
- Cluster a databáze Azure Data Explorer. Vytvořte cluster a databázi.
- Visual Studio 2022 Community Edition. Během instalace sady Visual Studio zapněte vývoj pro Azure .
- Aplikace Microsoft Entra a instanční objekt, které mají přístup k prostředkům. Uložte ID adresáře (tenanta),ID aplikace a tajný klíč klienta.
- Nainstalujte Azure.ResourceManager.Kusto.
- Nainstalujte balíček NuGet Azure.Identity pro ověřování.
Přidání objektu zabezpečení databáze
Spuštěním následujícího kódu přidejte objekt zabezpečení databáze:
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
);
Nastavení | Navrhovaná hodnota | Popis pole |
---|---|---|
id tenanta | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | ID vašeho tenanta Označuje se také jako ID adresáře. |
subscriptionId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | ID předplatného, které použijete k vytvoření prostředku. |
clientId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | ID klienta aplikace, která má přístup k prostředkům ve vašem tenantovi. |
clientSecret | Zástupný klientSecret | Tajný klíč klienta aplikace, která má přístup k prostředkům ve vašem tenantovi. |
resourceGroupName | testrg | Název skupiny prostředků obsahující váš cluster. |
clusterName | mykustocluster | Název vašeho clusteru. |
databaseName | databáze mykustodatabase | Název databáze. |
databasePrincipalAssignmentName | mykustodatabaseprincipalassignment | Název vašeho prostředku instančního objektu databáze. |
principalId | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | Hlavní ID, kterým může být e-mail uživatele, ID aplikace nebo název skupiny zabezpečení. |
role | Správce | Role objektu zabezpečení databáze, která může být "Správa", "Ingestor", "Monitor", "Uživatel", "UnrestrictedViewers", "Viewer". |
tenantIdForPrincipal | xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx | ID tenanta objektu zabezpečení. |
principalType | Aplikace | Typ objektu zabezpečení, kterým může být Uživatel, Aplikace nebo Skupina. |