xua*_*hui 5 authentication passwords postgresql
我所做的只是在我的本地机器(Mac OS)中。
安装postgresql后,我创建了一个密码为poet的用户,然后创建了一个名为poems的数据库,数据库的所有者是poet。
我很好奇的是,不用密码,我可以和诗人一起登录诗歌。
命令是psql -U poet -d poems. 那么密码有什么用呢?
我知道我可以添加 -W 来获取密码提示psql -U poet -d poems -W,但即使密码错误,我仍然可以登录!
然后我修改配置文件(/usr/local/var/postgres/pg_hba.conf)如下:
# "local" is for Unix domain socket connections only
#local all all trust
local all all password
# IPv4 local connections:
#host all all 127.0.0.1/32 trust
host all all 127.0.0.1/32 password
# IPv6 local connections:
#host all all ::1/128 trust
host all all ::1/128 password
Run Code Online (Sandbox Code Playgroud)
并重新启动服务器,我仍然不需要提供密码登录数据库。
有人能告诉如何强制服务器验证登录密码的正确性吗?
这也发生在我身上。非特权帐户能够使用无效密码登录。我为解决它而采取的步骤是。
找到正确的 pg_hba.conf 文件。
$ psql -h 127.0.0.1 -U admin -W postgres
Password for user admin:
psql (9.6.5)
Type "help" for help.
openproject_dev=# SHOW hba_file ;
hba_file
-------------------------------------
/usr/local/var/postgres/pg_hba.conf
(1 row)
Run Code Online (Sandbox Code Playgroud)
编辑文件以强制密码登录...将管理员(超级用户)保留为信任。我使用 md5 而不是密码 .. 密码也有效。
# "local" is for Unix domain socket connections only
local all admin trust
local all all md5
# IPv4 local connections:
host all admin 127.0.0.1/32 trust
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all admin ::1/128 trust
host all all ::1/128 md5
Run Code Online (Sandbox Code Playgroud)
保存 pg_hba.conf 文件并重新启动 postgres 服务器。
| 归档时间: |
|
| 查看次数: |
10669 次 |
| 最近记录: |