2017-09-01 114 views
1

我有一个带有四个模式(Schema1,Schema2,Schema3和Schema 4)的Amazon Redshift集群。Redshift撤销权限不起作用

我在此群集中创建了一个用户User1。我希望此用户只能以只读方式访问Schema1中的所有表格。目前,此用户可以访问(选择,插入,更新,删除)所有模式的所有表。

我尝试了Redshift手册中的所有命令,但看起来没有任何工作。

实施例:

REVOKE ALL on schema schema1 from User1 
REVOKE ALL on schema schema2 from User1 
REVOKE ALL on schema schema3 from User1 
REVOKE ALL on schema schema4 from User1 

我也试图撤消个别权限(插入,更新,删除)。

我也试图撤消权限(插入,更新,删除)从单个表

尝试一切从手工组合。我正在使用SQL Workbench,并且所有语句都成功执行,没有任何语法错误。

无法计算出来。任何帮助表示赞赏。

P.S.我有15年的数据库经验,在角色和权限上工作。

+1

你能可能为我们提供了[最小,完整,可验证的示例](https://stackoverflow.com/help/mcve)以便我们可以重现您的情况并尝试诊断?这可以通过显示命令来创建您现有的配置以及无法产生您所寻找的结果的命令来完成。随意编辑您的问题以添加此信息。 –

+0

注意:确保在SQL Workbench中打开** auto-commit **以查看任何错误消息,否则第一个错误将阻止将来的命令在事务关闭之前执行。 –

+0

谢谢约翰,我将提供详细信息 – DaDeem

回答

0

这些命令似乎工作:

CREATE SCHEMA schema1; 
CREATE TABLE schema1.foo (name TEXT); 
CREATE USER user1 PASSWORD 'Abcd1234'; 
GRANT USAGE ON SCHEMA schema1 TO user1; 
GRANT SELECT ON ALL TABLES IN SCHEMA schema1 TO user1; 

但是,它可能不会自动授予在未来创建的表的访问。

由于亚马逊红移是基于PostgreSQL的8.0.2,请参见:How do you create a read-only user in PostgreSQL?

相关问题