다음을 통해 공유


Unity 카탈로그에서 권한 관리

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

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

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

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

권한은 다음 중 어느 것이든 부여할 수 있습니다.

  • 메타스토어 관리자입니다.
  • 개체에 대한 MANAGE 권한이 있는 사용자입니다.
  • 개체의 소유자입니다.
  • 개체를 포함하는 카탈로그 또는 스키마의 소유자입니다.

계정 관리자는 metastore에서 직접 권한을 부여할 수도 있습니다.

작업 영역 카탈로그 권한

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

모든 작업 영역 사용자는 작업 영역 카탈로그에 대한 USE CATALOG 권한을 받습니다. 작업 영역 사용자는 카탈로그의 default 스키마에 대한 USE SCHEMA, CREATE TABLE, CREATE 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 카탈로그 메타스토어의 개체에 대한 권한 부여 표시

참고 항목

현재 개체에 대한 MANAGE 권한이 있는 사용자는 INFORMATION_SCHEMA에서 그 개체에 대한 모든 권한을 볼 수 없습니다. 대신 INFORMATION_SCHEMA은/는 개체에 대한 자신의 권한 부여만 표시합니다. 이 동작은 나중에 수정될 예정입니다.

MANAGE 권한이 있는 사용자는 SQL 명령 또는 카탈로그 탐색기를 사용하여 개체의 모든 권한을 볼 수 있습니다. Unity 카탈로그에서 권한 관리를 참조하세요.

권한 필요:

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

카탈로그 탐색기

  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 관리자, 개체에 대한 MANAGE 권한, 개체의 소유자, 또는 개체를 포함하는 카탈로그나 스키마의 소유자.

카탈로그 탐색기

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

SQL

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

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

예를 들어, 다음 명령은 main부모 카탈로그를 사용하는 default 스키마에서 테이블을 생성할 수 있는 권한을 재무팀에게 부여합니다.

  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 모델 prod.ml_team.iris_modelEXECUTE 권한을 부여하려면 다음을 사용합니다.

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

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

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

카탈로그 탐색기

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

SQL

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

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

예를 들어, 다음 명령어는 finance-team 그룹의 default 스키마 내에서 테이블 생성 권한을 main상위 카탈로그로부터 해지합니다.

  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. 사용 권한 탭에서 사용자 또는 그룹을 선택하고 해지를 클릭합니다.
  4. 확인하려면 취소를 클릭합니다.

SQL

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

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

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