我对 PostgreSQL 还很陌生。我花了整个上午的时间试图让用户登录正常工作,现在我感到非常沮丧!
因此,我有一个 PostGIS 数据库,版本 9.2,作为 OpenGeo 软件套件的一部分。我可以使用 postgres 用户访问数据库,但希望创建一个有权访问数据库的组角色和用户,以便它可以在该数据库中创建表并更新/选择/删除等。
我可以创建一个有效的用户,并且可以使用该用户登录。我可以创建一个组角色并为该角色分配权限。然后我可以将用户添加到组角色,然后就不能再登录了!
甚至当我将用户 postgres 添加到组中时,该用户无法登录。我删除了该组,但仍然无法登录。
现在,我已经经常使用 pg_hba.conf 了。我现在可以作为 postgres 登录,但前提是启用了“信任”,并且我无法使用任何软件登录,例如 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”用户执行此操作,但现在我在组中添加和删除了该用户,我不能这样做。
编辑:错误消息...
如果我使用正确的密码通过 PGAdmin 中的 SSH 隧道登录,则会收到错误“致命:用户密码身份验证失败...”
如果我尝试在没有密码的情况下通过 PGAdmin 中的 SSH 隧道登录,并且设置了信任选项,则会收到错误:“连接到服务器时出错:fe_sendauth:未提供密码”。
仅通过 SSH 和 psql 本地登录时,第一个错误仍然发生,但第二个错误消失,我可以登录。
output of \du+:
output of \dg+