您可能正在使用ident
或甚至trust
身份验证。最常用的身份验证方法的快速概要:
trust
- 您可以登录不管。
ident
- 如果您的UNIX用户名与PostgreSQL用户名相同,则可以登录。
md5
- 如果您的密码(使用md5
加密)是正确的,您可以登录。
编辑:的PostgreSQL 9.0引入的peer
认证方法。从我收集的信息中,ident
和peer
具有相同的用途—登录由您的操作系统用户名—确定,但ident
与侦听端口113的ident服务器通信,而peer
通过系统调用查找您的凭证。见http://www.postgresql.org/docs/9.1/static/auth-methods.html#AUTH-IDENT
找到您pg_hba.conf文件,看看是否能找到的东西,看起来像这样:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all ident
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
当您尝试连接,PostgreSQL的经过此行由行。如果连接类型(例如local
,host
),数据库,用户(数据库用户,而不是系统用户)和地址都匹配,它将使用给定的认证方法。
如果你想需要密码才能访问自己的PostgreSQL用户,你可以在顶部添加一行这样的,local all all ident
前行:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
local mydbname myusername md5
在变更后重新启动的PostgreSQL pg_hba.conf
。
'database.yml'文件是什么样的? postgre中的密码为我工作。 – Matchu 2011-04-05 01:53:24