Hive 메타스토어의 권한 및 보안 개체

적용 대상:검사 예 Databricks SQL 검사 예 Databricks Runtime으로 표시됨

권한은 메타스토어의 보안 개체에서 작동할 수 있는 보안 주체에게 부여된 권한입니다.

권한 모델 및 보안 개체는 Unity 카탈로그 메타스토어 또는 레거시 Hive 메타스토어를 사용하는지에 따라 다릅니다. 이 문서에서는 레거시 Hive 메타스토어에 대한 권한 모델을 설명합니다. Unity 카탈로그를 사용하는 경우 Unity 카탈로그 의 권한 및 보안 개체를 참조하세요.

Hive 메타스토어의 보안 개체

보안 개체는 보안 주체에 권한을 부여할 수 있는 메타스토어에 정의된 개체입니다.

모든 개체에 대한 권한을 관리하려면 소유자 또는 관리자여야 합니다.

구문

  securable_object
    { ANY FILE |
      CATALOG [ catalog_name ] |
      { SCHEMA | DATABASE } schema_name |
      FUNCTION function_name |
      [ TABLE ] table_name |
      VIEW view_name
      }

매개 변수

  • ANY FILE

    기본 파일 시스템에 대한 액세스를 제어합니다.

  • CATALOGcatalog_name

    전체 데이터 카탈로그에 대한 액세스를 제어합니다.

  • { SCHEMA | DATABASE }schema_name

    스키마에 대한 액세스를 제어합니다.

  • FUNCTIONfunction_name

    명명된 함수에 대한 액세스를 제어합니다.

  • [ TABLE ]Table_name

    관리되는 테이블 또는 외부 테이블에 대한 액세스를 제어합니다.

  • VIEWview_name

    SQL 뷰에 대한 액세스를 제어합니다.

상속 모델

Hive 메타스토어의 보안 개체는 계층 구조이며 권한은 아래쪽으로 상속됩니다. 즉, 에 대한 권한을 부여하거나 거부하면 카탈로그의 CATALOG 모든 스키마에 대한 권한이 자동으로 부여되거나 거부됩니다. 마찬가지로 스키마 개체에 부여된 권한은 해당 스키마의 모든 개체에서 상속됩니다. 이 패턴은 모든 보안 개체에 적용됩니다.

테이블에 대한 사용자 권한을 거부하는 경우 스키마의 모든 테이블을 나열하려고 시도하여 테이블을 볼 수 없습니다. 스키마에 대한 사용자 권한을 거부하는 경우 사용자는 카탈로그의 모든 스키마를 나열하려고 시도하여 스키마가 존재하는 것을 볼 수 없습니다.

권한 유형

다음 표에서는 보안 개체와 연결된 권한을 보여 줍니다.

권한 유형 ANONYMOUS 함수 ANY FILE 카탈로그 스키마 함수 테이블 보기
만들
수정
READ_METADATA
선택
사용
  • ALL PRIVILEGES

    명시적으로 지정하지 않고 보안 개체 및 해당 자식 개체에 적용되는 모든 권한을 부여하거나 취소하는 데 사용됩니다. 이렇게 하면 권한 검사가 수행되는 시점에 사용 가능한 모든 권한으로 확장됩니다.

  • CREATE

    카탈로그 또는 스키마 내에 개체를 만듭니다.

  • MODIFY

    COPY INTO, UPDATEDELETE, INSERT 또는 MERGE INTO 를 테이블에 복사합니다.

    securable_object hive_metastore 또는 그 안에 있는 스키마인 경우 부여 MODIFY 하면 보안 개체 내의 모든 현재 및 이후 테이블과 뷰에 대한 권한이 부여 MODIFY 됩니다.

  • READ_METADATA

    SHOW에서 보안 개체를 검색하고 DESCRIBE에서 개체를 심문합니다.

    보안 개체가 카탈로그 또는 그 안의 hive_metastore 스키마인 경우 을 READ_METADATA 부여하면 보안 개체 내의 모든 현재 및 이후 테이블과 뷰에 대한 권한이 부여 READ_METADATA 됩니다.

  • READ FILES

    스토리지 자격 증명 또는 외부 위치를 사용하여 파일을 직접 쿼리합니다.

  • SELECT

    테이블 또는 뷰를 쿼리하거나, 사용자 정의 함수 또는 익명 함수를 호출하거나, 를 선택합니다 ANY FILE. 사용자는 테이블, 뷰 또는 함수뿐만 아니라 USAGE 개체의 스키마 및 카탈로그에도 필요합니다SELECT.

    보안 개체가 hive_metastore 또는 그 안에 있는 스키마인 경우 를 부여 SELECT 하면 보안 개체 내의 모든 현재 및 이후 테이블과 뷰에 대한 권한이 부여 SELECT 됩니다.

  • USAGE

    필수이지만 카탈로그 또는 스키마의 개체를 참조하기에는 충분하지 않습니다. 보안 주체는 개별 보안 개체에 대한 권한도 있어야 합니다.

  • WRITE FILES

    스토리지 자격 증명 또는 외부 위치가 관리하는 파일로 직접 복사합니다.

-- Grant a privilege to the user alf@melmak.et
> GRANT SELECT ON TABLE t TO `alf@melmak.et`;

-- Revoke a privilege from the general public group.
> REVOKE USAGE ON SCHEMA some_schema FROM `alf@melmak.et`;