【发布时间】:2013-02-23 12:15:43
【问题描述】:
更新:也在 PgAdmin 支持邮件列表here 上询问。
所以我有一个 AWS Redshift 集群启动并运行,我可以使用
从命令行连接到它$ psql -h host -d database -p port -U username
我想通过 pgAdmin III 连接到集群,但是在我连接到集群后,我收到一个错误提示:
错误:必须是超级用户才能查看 default_tablespace
注意,我输入的字段是:名称、主机、端口、维护数据库、用户名和密码,所有这些都与使用 psql 命令输入的相同。
现在,如果我通过 psql 连接,我会检查:
$ \tu
这个用户 [AWS 授予的主用户] 实际上是一个超级用户。那么对于可能导致此错误的原因有什么建议吗?
作为后续问题,当我连接到其他远程数据库时,即使我不是超级用户,我也不会收到此错误,那么这里发生了什么? Redshift 在通过 pgAdmin 连接时会导致发生此错误怎么办?
【问题讨论】:
-
他们正在运行一个非常定制的 PostgreSQL 变体,所以如果它不完全兼容我不会感到惊讶。连接到
psql时,运行SHOW default_tablespace;会做什么?在这种情况下,我怀疑他们已经通过内部权限检查来隐藏系统详细信息。 -
从 psql 抛出同样的错误!截至 3 天前,我能够通过 pgAdmin 进行连接,所以也许他们从那时起改变了一些东西。尽管存在此权限问题,是否可以通过 pgAdmin 查询 Redshift 中的表? IE。诸如禁止 pgAdmin 尝试读取 default_tablespace 之类的东西?我不太明白我在说什么,但我只是想弄清楚是否有可能围绕这个问题破解 pgAdmin。
-
我没看过,但怀疑它需要更改源代码级别,但可能不是非常复杂;当它无法访问
default_tablespaceGUC 时,它只需要隐藏其表空间意识。 PgAdmin-III 真正适用于 PostgreSQL 而不是它的第 3 方变体,但我想他们会接受补丁。尝试在 pgadmin-support 邮件列表中询问。如果您这样做了,请从您的帖子中链接回此问题,并在此处添加指向您帖子存档的链接。 -
谢谢克雷格,我会做一些挖掘并尝试找到解决方案!