다음을 통해 공유


Unity 카탈로그에 대한 외부 데이터 액세스 사용

중요합니다

이 기능은 공개 미리보기 단계에 있습니다.

Azure Databricks는 Unity REST API 및 Apache Iceberg REST 카탈로그를 사용하여 Unity 카탈로그 테이블에 대한 액세스를 제공합니다.

메타스토어 관리자는 외부에서 액세스해야 하는 각 메타스토어에 대해 외부 데이터 액세스를 사용하도록 설정해야 합니다. 연결을 구성하는 사용자 또는 서비스 주체는 관리되는 테이블에서 읽기 또는 외부 테이블 만들기, 읽기 및 쓰기와 같은 지원되는 작업을 수행해야 하는 각 스키마에 대한 권한이 있어야 합니다 EXTERNAL USE SCHEMA .

Unity REST API는 델타 테이블에 대한 직접 읽기를 지원합니다. Iceberg REST 카탈로그는 델타 테이블에 대한 읽기 및 Iceberg 테이블에 대한 읽기 및 쓰기를 지원합니다. 외부 시스템을 사용하여 Databricks 데이터에 액세스하는 방법을 참조하세요 .

메타스토어에서 외부 데이터 액세스 기능 활성화

외부 엔진이 메타스토어의 데이터에 액세스할 수 있도록 하려면 metastore 관리자가 메타스토어에 대한 외부 데이터 액세스를 사용하도록 설정해야 합니다. 이 옵션은 권한 없는 외부 액세스를 방지하기 위해 기본적으로 사용하지 않도록 설정됩니다.

외부 데이터 액세스를 사용하도록 설정하려면 다음을 수행합니다.

  1. 메타스토어에 연결된 Azure Databricks 작업 영역에서 데이터 아이콘을 클릭합니다.카탈로그.
  2. 기어 아이콘 을 클릭합니다. 카탈로그 창 맨 위에 있는 기어 아이콘을 클릭하고 메타스토어를 선택합니다.
  3. 세부 정보 탭에서, 외부 데이터 액세스사용하도록 설정합니다.

메모

이러한 옵션은 충분히 권한이 있는 사용자에 대해서만 표시됩니다. 이러한 옵션이 표시되지 않으면 메타스토어에 대한 외부 데이터 액세스를 사용하도록 설정할 수 있는 권한이 없습니다.

주 Unity 카탈로그 권한 부여

Azure Databricks에 연결하는 외부 클라이언트는 충분히 권한 있는 보안 주체의 권한 부여가 필요합니다.

Azure Databricks는 인증을 위해 OAuth 및 PAT(개인용 액세스 토큰)를 지원합니다. Azure Databricks 리소스에 대한 액세스 권한 부여를 참조하세요.

임시 자격 증명을 요청하는 주체는 다음을 갖추어야 합니다.

  • 포함하는 스키마 또는 해당 부모 카탈로그에 대한 EXTERNAL USE SCHEMA 권한입니다.

    이 권한은 항상 명시적으로 부여되어야 합니다. 부모 카탈로그 소유자만 부여할 수 있습니다. 우발적인 반출을 방지하기 위해 ALL PRIVILEGESEXTERNAL USE SCHEMA 권한을 포함하지 않으며 스키마 소유자는 기본적으로 이 권한을 갖지 않습니다.

  • 테이블에 대한 SELECT 권한, 부모 카탈로그에 대한 USE CATALOG 권한, 그리고 부모 스키마에 대한 USE SCHEMA 권한.

  • 외부 테이블을 만드는 경우 보안 주체는 스키마에 대한 권한과 대상 외부 위치에 대한 권한과 권한을 모두 CREATE TABLECREATE EXTERNAL TABLE 가져야 EXTERNAL USE LOCATION 합니다.

    EXTERNAL USE LOCATION 는 항상 명시적으로 부여되어야 합니다. 외부 위치에 대한 권한이 있는 MANAGE 사용자만 권한을 부여할 수 있습니다. 우발적인 반 ALL PRIVILEGES 출을 방지하기 위해 권한은 포함하지 EXTERNAL USE LOCATION 않으며 위치 소유자는 기본적으로 이 권한을 갖지 않습니다.

다음 예제 구문에서는 사용자에게 EXTERNAL USE SCHEMA 부여하는 방법을 보여 줍니다.

GRANT EXTERNAL USE SCHEMA ON SCHEMA catalog_name.schema_name TO `user@company.com`

다음 예제 구문에서는 사용자에게 EXTERNAL USE LOCATION 부여하는 방법을 보여 줍니다.

GRANT EXTERNAL USE LOCATION ON EXTERNAL LOCATION external_location_name TO `user@company.com`

사용자에게 스키마에서 원하는 모든 테이블을 읽을 수 있는 권한이 있다고 가정하면 추가 권한이 필요하지 않습니다. 테이블을 읽을 수 있는 추가 권한을 부여해야 하는 경우 Unity 카탈로그 권한 및보안 개체를 참조하세요.