다음을 통해 공유


Unity Catalog에서 권한 관리

이 문서에서는 Unity 카탈로그에서 데이터 및 기타 개체에 대해 액세스를 제어하는 방법을 설명합니다. 이 모델이 Hive 메타스토어의 액세스 제어와 어떻게 다른지 알아보려면 Unity 카탈로그 작업 및 레거시 Hive 메타스토어를 참조하세요.

누가 권한을 관리할 수 있나요?

처음에는 사용자가 메타스토어의 데이터에 액세스할 수 없습니다. Azure Databricks 계정 관리자, 작업 영역 관리자 및 metastore 관리자는 Unity 카탈로그를 관리하기 위한 기본 권한을 갖습니다. Unity 카탈로그에서 관리자 권한을 참조 하세요.

Unity 카탈로그의 모든 보안 개체에는 소유자가 있습니다. 개체 소유자는 다른 보안 주체에게 권한을 부여하는 기능을 포함하여 해당 개체에 대한 모든 권한을 갖습니다. Unity 카탈로그 개체 소유권 관리를 참조하세요.

메타스토어 관리자, 개체 소유자, 개체를 포함하는 카탈로그 또는 스키마 소유자가 권한을 부여할 수 있습니다. 계정 관리자는 metastore에서 직접 권한을 부여할 수도 있습니다.

작업 영역 카탈로그 권한

Unity 카탈로그에 대해 작업 영역을 자동으로 사용하도록 설정한 경우 작업 영역은 기본적으로 메타스토어에 연결되고 메타스토어의 작업 영역에 대한 작업 영역 카탈로그가 만들어집니다. 작업 영역 관리자는 작업 영역 카탈로그의 기본 소유자입니다. 소유자는 작업 영역 카탈로그 및 모든 자식 개체에 대한 권한을 관리할 수 있습니다.

모든 작업 영역 사용자는 작업 영역 카탈로그에 대한 권한을 받 USE CATALOG 습니다. 작업 영역 사용자는 카탈로그의 USE SCHEMA스키마에 대한 default , CREATE TABLECREATE VOLUME, CREATE MODEL, CREATE FUNCTIONCREATE MATERIALIZED VIEW 권한도 받습니다.

자세한 내용은 Unity 카탈로그의 자동 사용을 참조 하세요.

상속 모델

Unity 카탈로그의 보안 개체는 계층 구조이며 권한은 아래쪽으로 상속됩니다. 권한이 상속되는 가장 높은 수준의 개체는 카탈로그입니다. 즉, 카탈로그 또는 스키마에 대한 권한을 부여하면 카탈로그 또는 스키마 내의 모든 현재 및 미래 개체에 대한 권한이 자동으로 부여됩니다. 예를 들어 사용자에게 SELECT 카탈로그에 대한 권한을 부여하면 해당 사용자는 해당 카탈로그의 모든 테이블과 뷰를 선택(읽기)할 수 있습니다. Unity 카탈로그 메타스토어에 부여된 권한은 상속되지 않습니다.

Unity 카탈로그 개체 계층 구조

개체 소유자에게 해당 개체에 대한 모든 권한이 자동으로 부여됩니다. 또한 개체 소유자는 개체 자체 및 모든 자식 개체에 대한 권한을 부여할 수 있습니다. 즉, 스키마 소유자가 스키마의 테이블에 대한 모든 권한을 자동으로 가지지는 않지만 스키마의 테이블에 대한 권한을 부여할 수 있습니다.

참고 항목

공개 미리 보기(2022년 8월 25일 이전)에서 Unity 카탈로그 메타스토어를 만든 경우 현재 상속 모델을 지원하지 않는 이전 권한 모델에 있을 수 있습니다. 권한 상속을 얻으려면 권한 모델 버전 1.0으로 업그레이드할 수 있습니다. 권한 상속으로 업그레이드를 참조하세요.

권한 표시, 부여 및 해지

SQL 명령, Databricks CLI, Databricks Terraform 공급자 또는 카탈로그 탐색기를 사용하여 메타스토어 개체에 대한 권한을 관리할 수 있습니다.

다음 SQL 명령에서 다음 자리 표시자 값을 바꿉니다.

  • <privilege-type> 는 Unity 카탈로그 권한 유형입니다. 권한 유형을 참조하세요.
  • <securable-type>: CATALOG 또는 TABLE과 같은 보안 개체의 형식입니다. 보안 개체 참조
  • <securable-name>: 보안 개체의 이름입니다. 보안 형식이 METASTORE면 보안 개체 이름을 제공하지 마세요. 작업 영역에 연결된 메타스토어로 간주됩니다.
  • <principal>은 사용자, 서비스 주체(applicationId 값으로 표시됨) 또는 그룹입니다. 백틱(` `)에 특수 문자를 포함하는 사용자, 서비스 주체 및 그룹 이름을 묶어야 합니다. 보안 주체를 참조하세요.

Unity 카탈로그 메타스토어의 개체에 대한 권한 부여 표시

필요한 권한:

  • Metastore 관리자, 개체 소유자 또는 개체가 포함된 카탈로그 또는 스키마의 소유자는 개체에 대한 모든 권한을 볼 수 있습니다.
  • 위의 권한이 없는 경우 개체에 대한 사용자 고유의 권한만 볼 수 있습니다.

카탈로그 탐색기

  1. Azure Databricks 작업 영역에서 카탈로그를 클릭합니다카탈로그 아이콘.
  2. 카탈로그, 스키마, 테이블 또는 뷰와 같은 개체를 선택합니다.
  3. 사용 권한 탭으로 이동합니다.

SQL

Notebook 또는 SQL 쿼리 편집기에서 다음 SQL 명령을 실행합니다. 특정 보안 주체에 대한 권한을 표시하거나 보안 개체에 모든 부여를 표시할 수 있습니다.

  SHOW GRANTS [principal] ON  <securable-type> <securable-name>

예를 들어 다음 명령은 기본이라는 부모 카탈로그의 기본이라는 스키마에 대한 모든 부여를 보여 줍니다.

  SHOW GRANTS ON SCHEMA main.default;

이 명령은 다음을 반환합니다.

  principal     actionType     objectType objectKey
  ------------- -------------  ---------- ------------
  finance-team   CREATE TABLE  SCHEMA     main.default
  finance-team   USE SCHEMA    SCHEMA     main.default

Unity 카탈로그 메타스토어에서 개체에 대한 내 권한 부여 표시

필요한 권한: 개체에 대한 사용자 고유의 권한을 항상 볼 수 있습니다.

카탈로그 탐색기

  1. Azure Databricks 작업 영역에서 카탈로그를 클릭합니다카탈로그 아이콘.
  2. 카탈로그, 스키마, 테이블 또는 뷰와 같은 개체를 선택합니다.
  3. 사용 권한 탭으로 이동합니다. 개체 소유자 또는 metastore 관리자가 아닌 경우 개체에 대한 사용자 고유의 권한 부여만 볼 수 있습니다.

SQL

Notebook 또는 SQL 쿼리 편집기에서 다음 SQL 명령을 실행하여 개체에 대한 권한을 표시합니다.

  SHOW GRANTS `<user>@<domain-name>` ON  <securable-type> <securable-name>

Unity 카탈로그 메타스토어의 개체에 대한 권한 부여

필요한 권한: Metastore 관리자, 개체 소유자 또는 개체가 포함된 카탈로그 또는 스키마의 소유자입니다.

카탈로그 탐색기

  1. Azure Databricks 작업 영역에서 카탈로그를 클릭합니다카탈로그 아이콘.
  2. 카탈로그, 스키마, 테이블 또는 뷰와 같은 개체를 선택합니다.
  3. 사용 권한 탭으로 이동합니다.
  4. 부여를 클릭합니다.
  5. 사용자의 이메일 주소 또는 그룹 이름을 입력합니다.
  6. 부여할 사용 권한을 선택합니다.
  7. 확인을 클릭합니다.

SQL

Notebook 또는 SQL 쿼리 편집기에서 다음 SQL 명령을 실행합니다.

  GRANT <privilege-type> ON <securable-type> <securable-name> TO <principal>

예를 들어 다음 명령은 기본이라는 부모 카탈로그를 사용하여 기본이라는 스키마에 테이블을 만들기 위해 재무 팀이라는 그룹에 액세스 권한을 부여합니다.

  GRANT CREATE TABLE ON SCHEMA main.default TO `finance-team`;
  GRANT USE SCHEMA ON SCHEMA main.default TO `finance-team`;
  GRANT USE CATALOG ON CATALOG main TO `finance-team`;

등록된 모델은 함수의 유형입니다. 모델에 대한 권한을 부여하려면 .를 사용해야 GRANT ON FUNCTION합니다. 예를 들어 그룹에 ml-team-acme EXECUTE 모델에 prod.ml_team.iris_model대한 권한을 부여하려면 다음을 사용합니다.

  GRANT EXECUTE ON FUNCTION prod.ml_team.iris_model TO `ml-team-acme`;

Unity 카탈로그 메타스토어의 개체에 대한 사용 권한 취소

필요한 권한: Metastore 관리자, 개체 소유자 또는 개체가 포함된 카탈로그 또는 스키마의 소유자입니다.

카탈로그 탐색기

  1. Azure Databricks 작업 영역에서 카탈로그를 클릭합니다카탈로그 아이콘.
  2. 카탈로그, 스키마, 테이블 또는 뷰와 같은 개체를 선택합니다.
  3. 사용 권한 탭으로 이동합니다.
  4. 사용자, 서비스 주체 또는 그룹에 부여된 권한을 선택합니다.
  5. 취소를 클릭합니다.
  6. 확인하려면 취소를 클릭합니다.

SQL

Notebook 또는 SQL 쿼리 편집기에서 다음 SQL 명령을 실행합니다.

  REVOKE <privilege-type> ON <securable-type> <securable-name> TO <principal>

예를 들어 다음 명령은 finance-team 액세스라는 그룹을 해지하여 기본이라는 부모 카탈로그를 사용하여 기본이라는 스키마에 테이블을 만듭니다.

  REVOKE CREATE TABLE ON SCHEMA main.default TO `finance-team`;

메타스토어에 권한 부여 표시

필요한 권한: Metastore 관리자 또는 계정 관리자입니다. 메타스토어에서 사용자 고유의 보조금을 볼 수도 있습니다.

카탈로그 탐색기

  1. Azure Databricks 작업 영역에서 카탈로그를 클릭합니다카탈로그 아이콘.
  2. 카탈로그 탐색기 페이지 레이블 옆에 있는 메타스토어 이름 옆에 있는 아이콘을 클릭합니다.
  3. 사용 권한 탭으로 이동합니다.

SQL

Notebook 또는 SQL 쿼리 편집기에서 다음 SQL 명령을 실행합니다. 특정 보안 주체에 부여를 표시하거나 metastore에 모든 권한을 표시할 수 있습니다.

  SHOW GRANTS [principal] ON METASTORE

metastore에 대한 권한 부여

필요한 권한: Metastore 관리자 또는 계정 관리자입니다.

카탈로그 탐색기

  1. Azure Databricks 작업 영역에서 카탈로그를 클릭합니다카탈로그 아이콘.
  2. 카탈로그 탐색기 페이지 레이블 옆에 있는 메타스토어 이름 옆에 있는 아이콘을 클릭합니다.
  3. 사용 권한 탭에서 권한 부여를 클릭합니다.
  4. 사용자의 이메일 주소 또는 그룹 이름을 입력합니다.
  5. 부여할 사용 권한을 선택합니다.
  6. 확인을 클릭합니다.

SQL

  1. Notebook 또는 SQL 쿼리 편집기에서 다음 SQL 명령을 실행합니다.

    GRANT <privilege-type> ON METASTORE TO <principal>;
    

    메타스토어에 대한 권한을 부여하는 경우 작업 영역에 연결된 메타스토어가 가정되므로 메타스토어 이름을 포함하지 않습니다.

메타스토어에 대한 사용 권한 취소

필요한 권한: Metastore 관리자 또는 계정 관리자입니다.

카탈로그 탐색기

  1. Azure Databricks 작업 영역에서 카탈로그를 클릭합니다카탈로그 아이콘.
  2. 카탈로그 탐색기 페이지 레이블 옆에 있는 메타스토어 이름 옆에 있는 아이콘을 클릭합니다.
  3. 사용 권한 탭에서 사용자 또는 그룹을 선택하고 해지(Revoke)를 클릭합니다.
  4. 확인하려면 취소를 클릭합니다.

SQL

  1. Notebook 또는 SQL 쿼리 편집기에서 다음 SQL 명령을 실행합니다.

    REVOKE <privilege-type> ON METASTORE FROM <principal>;
    

    메타스토어에 대한 권한을 취소하는 경우 작업 영역에 연결된 metastore가 가정되므로 메타스토어 이름을 포함하지 않습니다.