如何在greenplum中获得information_schema.schemata的select权限

How to get select rights of information_schema.schemata in grrenplum

我在 greenplum db 中创建了一个新用户,只想授予 information_schema.schemata table 的 select 权限。在 运行 下面的查询之后,我只能 select information_schema.schemata table 而没有错误,但是没有数据出现。

GRANT SELECT ON information_schema.schemata TO <username>;

GRANT SELECT ON information_schema.schemata TO <username>;
SELECT * FROM information_schema.schemata ;

我希望新用户能向我显示数据,但我收到的是没有数据的消息。

Total query runtime: 291 msec
0 rows retrieved.

我在 GP 的 5.x 版本上 运行 没有遇到任何问题,但在 GP 4.3.32.1(最新的 4.3 版本)上得到的结果与您相同。 查看 information_schema.schemata 视图的定义

\d+ information_schema.schemata

表明它从 pg_catalog 架构中连接了两个表,pg_namespace 和 pg_authid。 在 4.3.x 中,普通用户无法访问 pg_authid。 所以,作为 gpadmin,运行:

psql -d <userdb> -c 'grant select on pg_catalog.pg_authid to <user>'

那么您的查询应该有效。