REVOKE CALLER¶
撤销之前通过 调用方授权 授予可执行文件所有者的权限。
REVOKE CALLER 命令的变体如下:
REVOKE CALLER – 撤销特定对象的特定权限。
REVOKE ALL CALLER PRIVILEGES – 撤销特定对象的所有权限。可执行文件在尝试访问对象时将无法以调用方的任何权限运行。
REVOKE INHERITED CALLER – 当同一类型的所有当前和未来对象共享共同架构、数据库或账户时,撤销对上述内容的调用方授权。只有指定列表中的权限会被撤销。
REVOKE ALL INHERITED CALLER PRIVILEGES – 当同一类型的所有当前和未来对象共享共同架构、数据库或账户时,撤销对上述内容的调用方授权。撤销所有权限;可执行文件将无法以调用方的任何权限运行。
语法¶
REVOKE CALLER <object_privilege> [ , <object_privilege> ... ]
ON <object_type> <object_name>
FROM { ROLE | DATABASE ROLE } <grantee_name>
REVOKE ALL CALLER PRIVILEGES
ON <object_type> <object_name>
FROM { ROLE | DATABASE ROLE } <grantee_name>
REVOKE INHERITED CALLER <object_privilege> [ , <object_privilege> ... ]
ON ALL <object_type_plural>
IN { ACCOUNT | DATABASE <db_name> | SCHEMA <schema_name> | APPLICATION <app_name> | APPLICATION PACKAGE <app_pkg_name> }
FROM { ROLE | DATABASE ROLE } <grantee_name>
REVOKE ALL INHERITED CALLER PRIVILEGES
ON ALL <object_type_plural>
IN { ACCOUNT | DATABASE <db_name> | SCHEMA <schema_name> | APPLICATION <app_name> | APPLICATION PACKAGE <app_pkg_name> }
FROM { ROLE | DATABASE ROLE } <grantee_name>
参数¶
object_privilege [ , object_privilege ... ]
要撤销的对象权限。指定角色拥有的可执行文件不能再以这些权限运行。有关特定对象类型的权限列表,请参阅 访问控制权限。
使用以逗号分隔的列表指定多个对象权限。
ON object_type object_name
要撤销其权限的对象,包括其类型。使用
object_type
的单数形式,例如TABLE
或WAREHOUSE
。ON ALL object_type_plural IN ACCOUNT
或 .ON ALL object_type_plural IN DATABASE db_name
或 .ON ALL object_type_plural IN SCHEMA schema_name
或 .ON ALL object_type_plural IN APPLICATION app_name
或 .ON ALL object_type_plural IN APPLICATION PACKAGE app_pkg_name
撤销特定类型的所有对象的权限。使用对象类型的复数形式,例如
TABLES
或WAREHOUSES
。您可以使用 REVOKE 语句撤销对当前账户中所有对象的访问权限,或者仅撤销对指定数据库、架构、应用程序或应用程序包中对象的访问权限。
FROM ROLE grantee_name
或 .FROM DATABASE ROLE grantee_name
以前被授予调用方权限的可执行文件所有者。
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
MANAGE CALLER GRANTS |
账户 |
账户级 MANAGE CALLER GRANTS 权限仅涉及调用方授权。它不允许您撤销角色的权限。 |
任何权限 |
所有指定的对象 |
对于 REVOKE 命令中指定的对象,您至少需要拥有一项权限。例如,撤销表的调用方授权要求您至少拥有该表的一项权限。 |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
示例¶
owner_role
拥有的可执行文件在访问当前账户中的视图时,不能再以调用方的权限运行。
REVOKE ALL INHERITED CALLER PRIVILEGES ON ALL VIEWS IN ACCOUNT FROM ROLE owner_role;
owner_role
拥有的可执行文件在访问 db.sch1
架构时不能再以 USAGE 权限运行。
REVOKE CALLER USAGE ON SCHEMA db.sch1 FROM ROLE owner_role;