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
기본 파일 시스템에 대한 액세스를 제어합니다.
CATALOG
catalog_name전체 데이터 카탈로그에 대한 액세스를 제어합니다.
{ SCHEMA | DATABASE }
schema_name스키마에 대한 액세스를 제어합니다.
FUNCTION
function_name명명된 함수에 대한 액세스를 제어합니다.
[ TABLE ]
Table_name관리되는 테이블 또는 외부 테이블에 대한 액세스를 제어합니다.
VIEW
view_nameSQL 뷰에 대한 액세스를 제어합니다.
상속 모델
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`;