PostgreSQL:为什么我可以使用设置的密码连接到用户而无需提供密码?

时间:2009-06-29 01:11:11

标签: sql database postgresql passwords

创建新用户john后:

CREATE USER john PASSWORD 'test';
CREATE DATABASE johndb OWNER john;
我可以通过以下方式连接到PostgreSQL服务器:
psql -U john johndb
问题是psql从未问过我为了密码。由于显而易见的原因,我真的需要知道出了什么问题。

1 个答案:

答案 0 :(得分:6)

您的pg_hba.conf文件可能将本地连接设置为“trust”。默认包含如下部分:

# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               trust

这意味着对于来自本地计算机的所有连接,请信任客户端所说的内容。如果客户端说“我是用户john”,那么服务器将允许这样做。

PostgreSQL文档有一个完整的section on the pg_hba.conf file