다음을 통해 공유


관리 ID로 외부 테이블 인증

외부 테이블은 Azure Data Explorer 데이터베이스 외부에 저장된 데이터를 참조하는 스키마 엔터티입니다. 외부 테이블은 Azure Storage 또는 SQL Server에서 데이터를 참조하고 다양한 인증 방법을 지원하도록 정의할 수 있습니다.

이 문서에서는 관리 ID로 인증 하는 외부 테이블을 만드는 방법을 알아봅니다.

필수 조건

1 - 외부 테이블에 사용할 관리 ID 구성

두 가지 종류의 관리 ID가 있습니다.

  • 시스템 할당: 시스템 할당 ID가 클러스터에 연결되고 클러스터가 제거되면 제거됩니다. 클러스터당 하나의 시스템 할당 ID만 허용됩니다.

  • 사용자 할당: 사용자 할당 관리 ID는 독립 실행형 Azure 리소스입니다. 여러 사용자 할당 ID를 클러스터에 할당할 수 있습니다.

다음 탭 중 하나를 선택하여 기본 관리 ID 유형을 설정합니다.

  1. 단계에 따라 클러스터에 사용자 할당 ID를 추가하고 나중에 사용할 수 있도록 개체(보안 주체) ID를 저장합니다.

  2. .alter-merge 정책 managed_identity 명령을 실행합니다. 이 명령은 외부 테이블과 함께 관리 ID를 사용할 수 있도록 클러스터에서 관리 ID 정책을 설정합니다. 개체(보안 주체) ID바꿉니다<objectId>.

    .alter-merge cluster policy managed_identity ```[
        {
          "ObjectId": "<objectId>",
          "AllowedUsages": "ExternalTable"
        }
    ]```
    

    참고 항목

    특정 데이터베이스에서 정책을 설정하려면 대신 사용합니다 database <DatabaseName> cluster.

2 - 관리 ID 외부 리소스 권한 부여

성공적으로 인증하려면 관리 ID에 외부 리소스에 대한 권한이 있어야 합니다.

관련 유형의 외부 리소스에 대한 탭을 선택하고 필요한 권한을 할당합니다.

다음 표에서는 외부 리소스에 필요한 사용 권한을 보여 줍니다. 외부 리소스에서 데이터를 가져오거나 쿼리하려면 관리 ID 읽기 권한을 부여합니다. 데이터를 외부 리소스로 내보내려면 관리 ID 쓰기 권한을 부여합니다.

외부 데이터 저장소 읽기 권한 쓰기 권한 사용 권한 부여
Azure Blob Storage Storage Blob 데이터 읽기 권한자 Storage Blob 데이터 Contributor Azure 역할 할당
Data Lake Storage Gen2 Storage Blob 데이터 읽기 권한자 Storage Blob 데이터 Contributor Azure 역할 할당
Data Lake Storage Gen1 판독기 기여자 Azure 역할 할당

3 - 외부 테이블 만들기

관리 ID로 인증을 지원하는 두 가지 유형의 외부 테이블, 즉 Azure Storage 외부 테이블과 SQL Server 외부 테이블이 있습니다.

다음 탭 중 하나를 선택하여 Azure Storage 또는 SQL Server 외부 테이블을 설정합니다.

Azure Storage 외부 테이블을 만들려면 다음 단계를 수행합니다.

  1. 스토리지 연결 문자열 템플릿을 기반으로 연결 문자열 만듭니다. 이 문자열은 액세스할 리소스와 해당 인증 정보를 나타냅니다. 관리 ID 인증 방법을 지정합니다.

  2. .create 또는 .alter 외부 테이블을 실행하여 테이블을 만듭니다. 이전 단계의 연결 문자열 스토리지커넥트ionString 인수로 사용합니다.

예시

다음 명령은 Azure Blob Storage의 mycontainer mystorageaccount CSV 형식 데이터를 참조하는 데이터를 만듭니다MyExternalTable. 테이블에는 정수에 대한 열과 문자열s에 대해 x 하나씩 두 개의 열이 있습니다. 연결 문자열 종료;managed_identity=system되며, 이는 인증에 시스템 할당 관리 ID를 사용하여 데이터 저장소에 액세스하도록 나타냅니다.

.create external table MyExternalTable (x:int, s:string) kind=storage dataformat=csv 
( 
    h@'https://mystorageaccount.blob.core.windows.net/mycontainer;managed_identity=system' 
)

참고 항목

사용자 할당 관리 ID로 인증하려면 관리 ID 개체 ID로 바꿉 system 니다.