PostgreSQL:为什么我可以使用设置的密码连接到用户,而不必提供密码?
创建新用户后,使用:创建用户约翰密码“测试”; CREATE USER john PASSWORD 'test'; CREATE DATABASE johndb OWNER john;PostgreSQL:为什么我可以使用设置的密码连接到用户,而不必提供密码?,sql,database,postgresql,passwords,Sql,Database,Postgresql,Passwords,创建新用户后,使用:创建用户约翰密码“测试”; CREATE USER john PASSWORD 'test'; CREATE DATABASE johndb OWNER john; 创建数据库johndb所有者john;我可以使用:psql-U john johndb连接到PostgreSQL server。问题是psql从不向我询问密码。我真的需要知道出了什么问题,原因很明显。您的pg_hba.conf文件可能已将本地连接设置为“信任”。默认设置包含如下部分: psql -U john j
创建数据库johndb所有者john;我可以使用:psql-U john johndb连接到PostgreSQL server。问题是
psql
从不向我询问密码。我真的需要知道出了什么问题,原因很明显。您的pg_hba.conf
文件可能已将本地连接设置为“信任”。默认设置包含如下部分:
psql -U john johndb
# "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
#“本地”仅用于Unix域套接字连接
本地所有信任
#IPv4本地连接:
托管所有127.0.0.1/32信任
#IPv6本地连接:
主机所有::1/128信任
这意味着,对于来自本地计算机的所有连接,无论客户机说什么,都要信任。如果客户机说“我是用户john”,那么服务器将允许这样做
PostgreSQL文档有一个完整的问题。我有一个类似的问题,但我的问题是没有设置为信任的,使用psql它需要密码,但如果使用psycog2 API,你可以不用密码就通过,为什么?@radtek:我不确定,但是,也许psycog2使用的是另一种连接方法,它会自动验证当前用户到postgresql server的身份。我忘了我的主目录中有.pgpass文件。如果未指定密码,psycopg2将使用.pgpass中存储的信息,psql也是如此