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;