示例 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

示例

以下示例从 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_profileuser1 列的 SELECT 权限。

revoke select(cust_name, cust_phone) on cust_profile from user1;

以下示例从 cust_name 组中撤消对 cust_phonecust_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;