MacOS下postgresql(pgsql)数据库密码为什么不需要填写或可以乱填写
Posted 石头StoneWang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MacOS下postgresql(pgsql)数据库密码为什么不需要填写或可以乱填写相关的知识,希望对你有一定的参考价值。
背景
MacOS下postgresql(pgsql)数据库密码似乎可以不填或乱填都可以登录,这个是因为安全策略认为本地连接是安全的,默认配置如此。
然后你会发现无密码登录后执行以下修改postgres用户的密码并重启pgsql进程后,依然不需要密码
ALTER USER postgres WITH PASSWORD '新密码';
如何设置密码
要求改 pg_hba.conf 这个配置文件
配置文件在哪里?
执行 ps -ef|grep postgres
,看到
501 3925 1 0 9:01AM ?? 0:00.03 /Applications/Postgres.app/Contents/Versions/12/bin/postgres -D /Users/stonewang/Library/Application Support/Postgres/var-12 -p 5432
501 3927 3925 0 9:01AM ?? 0:00.00 postgres: checkpointer
501 3928 3925 0 9:01AM ?? 0:00.03 postgres: background writer
501 3929 3925 0 9:01AM ?? 0:00.01 postgres: walwriter
501 3930 3925 0 9:01AM ?? 0:00.01 postgres: autovacuum launcher
501 3931 3925 0 9:01AM ?? 0:00.04 postgres: stats collector
501 3932 3925 0 9:01AM ?? 0:00.00 postgres: logical replication launcher
501 3940 3925 0 9:01AM ?? 0:00.01 postgres: postgres postgres 127.0.0.1(58351) idle
501 4074 3637 0 9:10AM ttys001 0:00.00 grep --color postgres
StoneMakPro2019:var-12 stonewang$
看到 -D
后面的路径就是配置文件的目录
进入这个目录/Users/stonewang/Library/Application Support/Postgres/var-12
,注意中间有空格要加\\
转义一下,进入后vi修改配置文件
(下图,本来全是trust的值,全部改成password)
至此,再重启pgsql的进程,然后发现本地连接也需要输入密码了。
以上是关于MacOS下postgresql(pgsql)数据库密码为什么不需要填写或可以乱填写的主要内容,如果未能解决你的问题,请参考以下文章
使用python登录pgsql,实现监控PostgreSQL