다음을 통해 공유


Azure Data Explorer 데이터베이스 보안 주체 추가

Azure 데이터 탐색기는 로그 및 원격 분석 데이터에 사용 가능한 빠르고 확장성이 우수한 데이터 탐색 서비스입니다. 이 문서에서는 C#, Python 또는 ARM(Azure Resource Manager) 템플릿을 사용하여 Azure Data Explorer 데이터베이스 보안 주체를 추가하는 방법을 알아봅니다.

사전 요구 사항

필수 구성 요소는 보안 주체를 추가하는 데 사용되는 메서드에 따라 달라집니다. 원하는 방법에 대한 관련 탭을 선택합니다.

다음 목록에서는 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 테넌트 ID 디렉터리 ID라고도 합니다.
subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 리소스를 만드는 데 사용하는 구독 ID입니다.
clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 테넌트의 리소스에 액세스할 수 있는 애플리케이션의 클라이언트 ID입니다.
clientSecret PlaceholderClientSecret 테넌트의 리소스에 액세스할 수 있는 애플리케이션의 클라이언트 암호입니다.
resourceGroupName testrg 클러스터가 포함된 리소스 그룹의 이름입니다.
clusterName mykustocluster 클러스터의 이름입니다.
databaseName mykustodatabase 데이터베이스의 이름입니다.
databasePrincipalAssignmentName mykustodatabaseprincipalassignment 데이터베이스 보안 주체 리소스의 이름입니다.
principalId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 사용자 이메일, 애플리케이션 ID 또는 보안 그룹 이름이 될 수 있는 보안 주체 ID입니다.
역할(role) 관리자 '관리자', '수집기', '모니터', '사용자', 'UnrestrictedViewers', '뷰어'가 될 수 있는 데이터베이스 보안 주체의 역할입니다.
tenantIdForPrincipal xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 보안 주체의 테넌트 ID입니다.
principalType '사용자', '앱' 또는 '그룹'이 될 수 있는 보안 주체의 유형입니다.