amo*_*mos 2 postgresql psycopg2
psycopg2我今天第一次玩,我试图了解密码是如何工作的......我有一个测试脚本,它删除一个表,重新创建表,添加一行,然后打印该行。我的问题是,为什么connect无论我是否提供正确的密码,该命令都会起作用?例如这一行:
conn = psycopg2.connect(database="mydb",host="localhost",port=5432,user="amos",
password="asdf")
Run Code Online (Sandbox Code Playgroud)
和这一行:
conn = psycopg2.connect(database="mydb",host="localhost",port=5432,user="amos",
password="asdf123")
Run Code Online (Sandbox Code Playgroud)
意外地做了同样的事情,并且脚本的其余部分完成且没有错误。显然,无论密码实际是什么,只有其中一行应该起作用。正如预期的那样,如果我尝试 a ,我确实会收到错误user="amos123",因为该用户不存在。如果重要的话,我的 PostgreSQL 安装了Postgres.app.
经过一番研究,我发现登录条件是在一个名为 的文件中指定的pg_hba.conf,在我的安装中默认有以下行:
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 trust
Run Code Online (Sandbox Code Playgroud)
根据这个值trust意味着它不检查密码。我想这对这个新手来说是不直观的,因为如果这种行为是我想要的,我一开始就不会设置密码。我将其发布在这里是为了节省未来的谷歌用户一些时间。
| 归档时间: |
|
| 查看次数: |
3073 次 |
| 最近记录: |