Redshift用户管理

时间:2017-05-24 09:09:26

标签: amazon-redshift

有没有办法限制用户查看数据库中的所有模式? 场景:

我有一个包含多个模式的数据库。我需要为特定模式的用户提供访问权限并将其表格化。

即使我尝试撤销对该特定用户和PUBLIC组的所有访问权限,他仍然可以查看所有模式及其表。 (只有他无法查看的数据。

我尝试了下面的命令:

REVOKE ALL ON SCHEMA devops_test FROM testuser;
REVOKE ALL ON SCHEMA devops_test FROM PUBLIC;
REVOKE ALL on all tables IN SCHEMA devops_test FROM testuser;

1 个答案:

答案 0 :(得分:0)

一旦连接到数据库,用户就可以从系统表中读取集群中所有数据库,模式,表,甚至表列的列表,即使它们无法通过这些表读取这些表中的数据使用REVOKE ALL FROM。试试这个:

REVOKE USAGE ON SCHEMA information_schema FROM PUBLIC;
REVOKE USAGE ON SCHEMA pg_catalog FROM PUBLIC;    
REVOKE SELECT ON TABLE pg_catalog.pg_database FROM PUBLIC; 

如果我做了一个错误的假设请发表评论,我会重新调整我的答案。