REVOKE <privilege> ...FROM SHARE

撤消共享中数据库和其他受支持的数据库对象(架构、表和视图)的访问权限。撤消对这些对象的权限实际上会从共享中移除这些对象,从而在已从共享创建数据库的所有使用者账户中,禁用通过数据库角色授予的对这些对象的访问权限。

有关更多详细信息,请参阅 Secure Data Sharing 简介使用共享

另请参阅:

GRANT <privilege> ...TO SHARE

REVOKE <privileges>

语法

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
语言: 中文