我对PostreSQL非常新手。我已经花了整个上午来尝试正确地使用户登录,但是现在非常沮丧!
所以,我有一个PostGIS数据库,版本为9.2,是OpenGeo软件套件的一部分。我可以使用postgres用户访问数据库,但希望创建一个组角色和用户,使其能够访问数据库,以便可以在该数据库中创建表格和进行更新/选择/删除等操作。
我可以创建用户,这很有效,我也可以使用该用户登录。我可以创建组角色并分配角色权限。然后,我将用户添加到组角色中,此后就无法登录!
甚至连当我将用户postgres添加到组中时,该用户也无法登录。我删除了组,但无法登录仍然存在。
现在,我已经对pg_hba.conf进行了大量尝试。我现在可以作为postgres登录,但仅在启用“trust”时才可以,并且我无法使用任何软件(例如PGAdminIII)登录。
如果能够得到一些关于出现问题的建议,并重新启用身份验证登录,那将是非常好的。
pg_hba:
Code:
# Database administrative login by Unix domain socket
local all postgres trust
local all gisadmin trust
# TYPE DATABASE USER ADDRESS METHOD
local all opengeo md5
local all opengeo md5
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all gisadmin localhost trust
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
作为最后的说明,我希望能够通过SSH隧道登录。我原本可以使用“postgres”用户进行登录,但现在我已经将该用户添加并从组中删除,所以无法登录。
编辑:错误信息...
如果我使用正确的密码通过SSH隧道在PGAdmin中登录,我会收到错误消息“FATAL:密码验证失败,用户...”。
如果我在设置了信任选项且没有输入密码的情况下尝试通过SSH隧道在PGAdmin中登录,则会收到错误消息:“连接到服务器时出错:fe_sendauth:未提供密码”。
第一个错误仍然发生在本地登录时,只是通过SSH和psql,但第二个错误消失了,我可以登录。
\du+ 的输出:
![enter image description here](https://istack.dev59.com/kY6Uy.webp)
![enter image description here](https://istack.dev59.com/2745K.webp)
psql
中执行\du+
和\dg+
的输出结果吗? - Craig Ringer