REVOKE <privilege> ...FROM SHARE¶
撤消共享中数据库和其他受支持的数据库对象(架构、表和视图)的访问权限。撤消对这些对象的权限实际上会从共享中移除这些对象,从而在已从共享创建数据库的所有使用者账户中,禁用通过数据库角色授予的对这些对象的访问权限。
有关更多详细信息,请参阅 Secure Data Sharing 简介 和 使用共享。
语法¶
REVOKE objectPrivilege ON
{ DATABASE <name>
| SCHEMA <name>
| { TABLE <name> | ALL TABLES IN SCHEMA <schema_name> }
| { EXTERNAL TABLE <name> | ALL EXTERNAL TABLES IN SCHEMA <schema_name> }
| { ICEBERG TABLE <name> | ALL ICEBERG TABLES IN SCHEMA <schema_name> }
| { DYNAMIC TABLE <name> | ALL DYNAMIC TABLES IN SCHEMA <schema_name> }
| { VIEW <name> | ALL VIEWS IN SCHEMA <schema_name> } }
FROM SHARE <share_name>
Copy
其中:
objectPrivilege ::=
-- For DATABASE
REFERENCE_USAGE [ , ... ]
-- For DATABASE, FUNCTION, or SCHEMA
USAGE [ , ... ]
-- For TABLE
EVOLVE SCHEMA [ , ... ]
-- For EXTERNAL TABLE, ICEBERG TABLE, TABLE, or VIEW
SELECT [ , ... ]
-- For TAG
READ
Copy
参数¶
name
指定要撤消指定权限的对象(数据库、架构、表或安全视图)的标识符。
schema_name
指定要撤消所有表或视图指定权限的架构的标识符。
share_name
指定要撤消指定权限的共享的标识符。
使用说明¶
必须从角色中单独撤消每个对象权限,但表、Iceberg 表和视图除外。通过使用
ALL
子句,您可以从角色中撤消对指定架构中所有表或视图的 SELECT 权限。如果您指定的
TABLE
对象是 Iceberg 表,则该命令会撤消对该 Iceberg 表的权限。
示例¶
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;Copy
此示例不允许共享安全视图引用来自不同数据库的对象:
REVOKE REFERENCE_USAGE ON DATABASE database2 FROM SHARE share1;Copy