从pgAdmin连接到Redshift集群

25

更新:也在PgAdmin-support邮件列表上发起了询问,在这里


我有一个正在运行的AWS Redshift集群,并且我能够通过命令行连接到它:

$ psql -h host -d database -p port -U username

我想通过pgAdmin III连接到集群,但是在连接到集群后,我收到以下错误信息:

错误:必须是超级用户才能查看default_tablespace

注意,我输入的字段是:名称、主机、端口、维护DB、用户名和密码,所有字段都与psql命令相同。

现在,如果我通过psql连接并检查:

$\tu

这个用户[由AWS授予的管理员用户]实际上是超级用户。那么,可能引起这个错误的原因有哪些建议?

作为后续问题,当我连接其他远程数据库时,即使我不是超级用户,我也不会收到此错误,那么这里发生了什么?Redshift有什么原因会导致通过pgAdmin连接时出现此错误?


1
他们正在运行一个非常定制化的PostgreSQL变体,所以如果它不是完全兼容的,我不会感到惊讶。当连接到它时,在psql中运行SHOW default_tablespace;会发生什么?在这种情况下,我怀疑他们已经篡改了内部权限检查以隐藏系统细节。 - Craig Ringer
从psql中抛出相同的错误!我能够在3天前通过pgAdmin连接,所以也许他们自那时起改变了一些东西。尽管存在权限问题,是否有可能通过pgAdmin查询Redshift中的表格?例如禁用pgAdmin尝试读取default_tablespace之类的操作?我不是很明白我在说什么,但我只是想弄清楚是否有可能绕过这个问题来操纵pgAdmin。 - Justin
1
我还没有仔细查看,但猜想它需要源代码级别的更改,但可能不是非常复杂的更改;它只需要在无法访问 default_tablespace GUC 时隐藏其表空间感知能力。PgAdmin-III 真正意义上是为 PostgreSQL 而设计的,而不是第三方变种,但我想他们会接受补丁。尝试在 pgadmin-support 邮件列表上提问。如果你这样做了,请从你的帖子中链接回这个问题,并在这里添加一个帖子存档链接。 - Craig Ringer
1
你可能想从这里 http://www.pgadmin.org/download/source.php 和这里 http://www.pgadmin.org/support/list.php 开始。 - Craig Ringer
我已经更新了你的问题,链接到pgadmin-support帖子,并回复了你的pgadmin-support帖子,添加了一个链接回到这里,就像我要求你在原始电子邮件中包含的那样。 - Craig Ringer
显示剩余3条评论
3个回答

17

PGAdmin 1.6.3(发布于2007年3月!)在我的OS X上与Redshift一起使用运行良好。

我猜这是有道理的,因为Redshift是从Postgres 8.0中派生出来的。

注意:通过“良好”我指的是GUI所需的功能正常工作。仍然有一些小问题和错误消息需要解决。


似乎与Postgres版本有问题。不幸的是,1.6.3对我们的目的来说不起作用,但知道发生了什么是好的。 - Justin

3

尝试使用SQLWorkbench。我没有尝试过pgadmin,但SqlWorkbench和Postgresql jdbc连接器对我来说完美地工作。


1
我已经成功使用了SQLWorkbench,但是还有其他原因想要使用pgAdmin连接。 - Justin
我仍然认为Data Grip是最好的数据库 GUI。它不是免费的,但绝对值得。 - botchniaque

3

如果你只需要一个图形化界面来编辑复杂的SQL语句,而不想每次更改时都复制粘贴,那么可以使用编辑快捷键。

pguser=> \e

这将打开您选择的编辑器(保存在计算机上的$EDITOR

如果您的默认编辑器是vim但想使用gedit,则可以运行以下命令来覆盖该会话的默认设置:

$ EDITOR=gedit psql -h host -d database -p port -U username

使用\e 编辑您的SQL,然后保存并退出。它会运行您的代码。然后再次打开\e,它将使用先前的查询填充您的编辑器。
祝愉快!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接