示例
以下示例从 GUESTS 用户组撤消对 SALES 表的 INSERT 权限。此命令使 GUESTS 的成员无法通过使用 INSERT 命令将数据加载到 SALES 表中。
revoke insert on table sales from group guests;
以下示例从用户 fred
撤消对 QA_TICKIT 架构中所有表的 SELECT 权限。
revoke select on all tables in schema qa_tickit from fred;
以下示例撤消用户 bobr
从视图中选择的权限。
revoke select on table eventview from bobr;
以下示例从所有用户撤消在 TICKIT 数据库中创建临时表的权限。
revoke temporary on database tickit from public;
以下示例从用户 cust_name
撤消对 cust_phone
表的 cust_profile
和 user1
列的 SELECT 权限。
revoke select(cust_name, cust_phone) on cust_profile from user1;
以下示例从 cust_name
组中撤消对 cust_phone
和 cust_contact_preference
列的 SELECT 权限,并撤消对 cust_profile
表的 sales_group
列的 UPDATE 权限。
revoke select(cust_name, cust_phone), update(cust_contact_preference) on cust_profile from group sales_group;
下面的示例演示如何使用 ALL 关键字从 cust_profile
组撤消对 sales_admin
表的三列的 SELECT 和 UPDATE 权限。
revoke ALL(cust_name, cust_phone,cust_contact_preference) on cust_profile from group sales_admin;
以下示例从 cust_name
用户撤消对 cust_profile_vw
视图的 user2
列的 SELECT 权限。
revoke select(cust_name) on cust_profile_vw from user2;
撤销通过数据共享创建的数据库的 USAGE 权限的示例
以下示例从 13b8833d-17c6-4f16-8fe4-1a018f5ed00d
命名空间撤销对 salesshare
数据共享的访问权限。
REVOKE USAGE ON DATASHARE salesshare FROM NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
以下示例从 Bob
撤销对 sales_db
的 USAGE 权限。
REVOKE USAGE ON DATABASE sales_db FROM Bob;
以下示例从 Analyst_role
撤销对 sales_schema
的 USAGE 权限。
REVOKE USAGE ON SCHEMA sales_schema FROM ROLE Analyst_role;
撤销限定范围权限的示例
以下示例从 Sales
角色撤销 Sales_db
数据库中所有当前和将来架构的使用权限。
REVOKE USAGE FOR SCHEMAS IN DATABASE Sales_db FROM ROLE Sales;
以下示例从用户 alice
撤销授予对 Sales_db
数据库中所有当前和将来表的 SELECT 权限的能力。alice
保留对 Sales_db
中所有表的访问权限。
REVOKE GRANT OPTION SELECT FOR TABLES IN DATABASE Sales_db FROM alice;
以下示例从用户 bob
撤销对 Sales_schema
架构中函数的 EXECUTE 权限。
REVOKE EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema FROM bob;
以下示例从 Sales
角色撤销对 ShareDb
数据库 ShareSchema
架构中所有表的所有权限。指定架构时,您还可以使用由两部分组成的格式 database.schema
指定架构的数据库。
REVOKE ALL FOR TABLES IN SCHEMA ShareDb.ShareSchema FROM ROLE Sales;
下面的示例与前一个示例相同。您可以使用 DATABASE
关键字而不是使用由两部分组成的格式来指定架构的数据库。
REVOKE ALL FOR TABLES IN SCHEMA ShareSchema DATABASE ShareDb FROM ROLE Sales;
撤销 ASSUMEROLE 权限的示例
以下是撤销 ASSUMEROLE 权限的示例。
超级用户必须通过在集群上运行一次以下语句来为用户和组启用 ASSUMEROLE 的使用权限。
revoke assumerole on all from public for all;
以下语句撤消用户 reg_user1 在所有角色中对所有操作的 ASSUMEROLE 权限。
revoke assumerole on all from reg_user1 for all;
撤销 ROLE 权限的示例
下面的示例将从 sample_role2 撤销 sample_role1。
CREATE ROLE sample_role2; GRANT ROLE sample_role1 TO ROLE sample_role2; REVOKE ROLE sample_role1 FROM ROLE sample_role2;
下面的示例将撤销 user1 的系统权限。
GRANT ROLE sys:DBA TO user1; REVOKE ROLE sys:DBA FROM user1;
下面的示例将从 user1 撤销 sample_role1 和 sample_role2。
CREATE ROLE sample_role1; CREATE ROLE sample_role2; GRANT ROLE sample_role1, ROLE sample_role2 TO user1; REVOKE ROLE sample_role1, ROLE sample_role2 FROM user1;
下面的示例将从 user1 撤销具有 ADMIN OPTION 的 sample_role2。
GRANT ROLE sample_role2 TO user1 WITH ADMIN OPTION; REVOKE ADMIN OPTION FOR ROLE sample_role2 FROM user1; REVOKE ROLE sample_role2 FROM user1;
下面的示例将从 sample_role5 撤销 sample_role1 和 sample_role2。
CREATE ROLE sample_role5; GRANT ROLE sample_role1, ROLE sample_role2 TO ROLE sample_role5; REVOKE ROLE sample_role1, ROLE sample_role2 FROM ROLE sample_role5;
下面的示例将撤销 sample_role1 的 CREATE SCHEMA 和 DROP SCHEMA 系统权限。
GRANT CREATE SCHEMA, DROP SCHEMA TO ROLE sample_role1; REVOKE CREATE SCHEMA, DROP SCHEMA FROM ROLE sample_role1;