示例 - Amazon Redshift

示例

以下示例从 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;