2017-10-19 135 views

回答

0

在Redshift集群中访问数据库和数据库对象(表和视图)的能力由用户/组帐户控制。正如你所提到的,你试图控制数据库访问,你需要检查你的用户帐户权限。您可以使用create user/group和grant/revoke语句来管理和创建这些文件。

最简单的方法可能是使用超级用户帐户执行撤销声明,并撤销对test2_DB的test1_user/group的访问。 例如

revoke all on all tables in test2_db from test1_group1 

出头的检查可能是谁创建的数据库对象。默认情况下,创建数据库对象的人是所有者。因此,如果您的test1_group1创建了新的数据库,则应该返回并使用超级用户帐户创建它。

+0

这很好,我知道test2_db的表和模式,我不会在test1_db的这些表上授予任何东西,所以我唯一担心的是为什么我被允许查看test1_db组的访问详细信息(pg_user和pg_group),以及test2_db.m中的用户可能是因为在多个数据库中共享系统表。数据库中的任何超级用户(而非root)都可以看到集群中所有数据库中的所有访问控制详细信息。 –

+0

@Tech支持我现在更好地理解你的问题,所以你说你已经控制了对实际表的访问,但是想要控制对系统表的访问。不幸的是,我的理解是,由于Redshift是Postgres数据库,所有用户都可以完全访问公共模式。因此,即使用户没有权限查看表,他们仍然可以从元数据表中收集信息。我相信你没有办法比我的答案中提到的方法进一步锁定它。 – smb

相关问题