REVOKE <privileges> … FROM SHARE

REVOKE <privileges> … FROM SHARE

데이터베이스 및 기타 지원되는 데이터베이스 객체(스키마, 테이블, 뷰)에 대한 접근 권한을 공유(share)에서 취소하는 명령이에요. 이 객체들에 대한 권한을 취소하면 객체가 공유에서 효과적으로 제거되어, 공유에서 데이터베이스를 만든 모든 소비자 계정에서 데이터베이스 역할을 통해 부여된 객체 접근이 비활성화돼요.

출처: 문서

본문

구문 (Syntax)

REVOKE <objectPrivilege> ON
     { <name>  DATABASE
      | <name>  SCHEMA
      | <name>  SEMANTIC VIEW
      | { <name>  TABLE  | ALL TABLES IN SCHEMA <schema_name>  }
      | { <name>  EXTERNAL TABLE  | ALL EXTERNAL TABLES IN SCHEMA <schema_name>  }
      | { <name>  ICEBERG TABLE  | ALL ICEBERG TABLES IN SCHEMA <schema_name>  }
      | { <name>  DYNAMIC TABLE  | ALL DYNAMIC TABLES IN SCHEMA <schema_name>  }
      | { <name>  VIEW  | ALL VIEWS IN SCHEMA <schema_name>  }  }
  FROM SHARE <share_name>

여기서:

objectPrivilege ::=
-- For DATABASE
   REFERENCE_USAGE [ , ... ]
-- For DATABASE, FUNCTION, or SCHEMA
   USAGE [ , ... ]
-- For SEMANTIC VIEW
   { REFERENCES | SELECT } [ , ... ]
-- For TABLE
   EVOLVE SCHEMA [ , ... ]
-- For EXTERNAL TABLE, ICEBERG TABLE, TABLE, or VIEW
   SELECT [ , ... ]
-- For TAG
   READ

파라미터

  • name — 지정된 권한이 취소되는 객체(데이터베이스, 스키마, 테이블 또는 뷰)의 식별자를 지정해요.
  • schema_name — 모든 테이블이나 뷰에 대해 지정된 권한이 취소되는 스키마의 식별자를 지정해요.
  • share_name — 지정된 권한이 취소되는 공유의 식별자를 지정해요.

사용 메모 (Usage notes)

  • 각 객체 권한은 테이블, Apache Iceberg™ 테이블, 뷰를 제외하고 공유에서 개별적으로 취소해야 해요. ALL 절을 사용하여 지정된 스키마의 모든 테이블에 대한 SELECT 권한을 공유에서 취소할 수 있어요. 공유가 SECURE_OBJECTS_ONLY=FALSE이면 스키마의 모든 뷰에 대한 SELECT 권한도 공유에서 취소할 수 있어요.
  • TABLE 객체가 Iceberg 테이블이면 명령은 그 Iceberg 테이블에서 권한을 취소해요.

예시 (Examples)

REVOKE SELECT ON VIEW mydb.shared_schema.view1 FROM SHARE share1;

REVOKE SELECT ON VIEW mydb.shared_schema.view3 FROM SHARE share1;

REVOKE USAGE ON SCHEMA mydb.shared_schema FROM SHARE share1;

REVOKE SELECT ON ALL TABLES IN SCHEMA mydb.public FROM SHARE share1;

REVOKE SELECT ON ALL ICEBERG TABLES IN SCHEMA mydb.public FROM SHARE share1;

REVOKE SELECT ON ALL DYNAMIC TABLES IN SCHEMA mydb.public FROM SHARE share1;

REVOKE SELECT ON ICEBERG TABLE mydb.shared_schema.iceberg_table_1 FROM SHARE share1;

REVOKE SELECT ON DYNAMIC TABLE mydb TO SHARE share1;

REVOKE USAGE ON SCHEMA mydb.public FROM SHARE share1;

REVOKE USAGE ON DATABASE mydb FROM SHARE share1;

이 예시는 공유된 보안 뷰가 다른 데이터베이스의 객체를 참조하지 못하게 해요:

REVOKE REFERENCE_USAGE ON DATABASE database2 FROM SHARE share1;

더 알아보기 (Learn more)