在红移群集中有多个数据库,有一种方法是一组用户只能查看群集中的特定数据库,并且所有其他数据库都隐藏给他。 目前,所有用户都可以在群集中查看数据库。
答案 0 :(得分:0)
我怀疑这是不可能的。
privileges that can be granted in PostgreSQL 8(Redshift所基于的)是:
GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
[,...] | ALL [ PRIVILEGES ] }
ON [ TABLE ] tablename [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
ON DATABASE dbname [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { EXECUTE | ALL [ PRIVILEGES ] }
ON FUNCTION funcname ([type, ...]) [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { USAGE | ALL [ PRIVILEGES ] }
ON LANGUAGE langname [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
ON SCHEMA schemaname [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { CREATE | ALL [ PRIVILEGES ] }
ON TABLESPACE tablespacename [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]
在表级,无法控制可见性。
最接近架构级别,可以授予他们是否可以使用架构的权限。
答案 1 :(得分:0)
那是不可能的。您可以执行的最大操作是撤消(或不授予)对要隐藏的表的架构/访问的使用。
用户仍然可以查看列表中的架构/表,其所有属性(主键,列等),但无法查看任何数据,这应该足以满足预期的数据保护。