一、前言

系统:windows系统 64位
Postgresql 版本:Postgresql 14

今天想测试一个PostgresSQL语法的 SQL,但是打开PostgresSQL之后沉默了。密码是什么?
想来当初知识安装随便玩一下,也没有太留意记一下密码,结果日长月久的,渐渐就忘记了,于是开始了寻找密码的道路。一开始想着用pgAdmin重置,但似乎没有这样的按钮。上网找一找,发现还是有办法的,网友给力!

二、重置密码过程

2.1 修改配置文件

由于版本有一些差异,找到的教程中,pg_dba.conf文件的配置和我的文件配置也有所不同。教程配置文件如下:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5

我的配置文件如下:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                    scram-sha-256
# IPv4 local connections:
host    all             all             127.0.0.1/32           scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                    scram-sha-256
host    replication     all             127.0.0.1/32           scram-sha-256
host    replication     all             ::1/128                scram-sha-256

虽然配置文件不一样,但是处理方式大同小异,就是把相关的验证方式改为trust,改完之后就是免密登录的方式。
如果想了解具体是哪一个会生效,可以逐一测试,如果不想一个个测试,可以将全部都改为trust,后面修改完密码之后再改回来就可以了,为了安全起见,记得要改回来哦!(可以考虑备份,改完后直接替换)

2.2 重启windows服务

改完配置文件之后,可以使用调出服务,重启PostgreSQL Server服务。重启服务有几种方法:
方法一:用快捷键win+R,输入services.msc,回车或确定,然后会弹出系统服务界面,找到PostgreSQL Server服务,点击重启动即可。
在这里插入图片描述
方法二:如果你知道你的PostgreSQL Server服务的名称,也可以通过以下命令net关闭和打开服务

net stop  <your PostgreSQL Server name>
net start <your PostgreSQL Server name>

2.3 登录并重置密码

打开命令行,依次输入以下命令。注意修改密码的引号内填入自己新的密码。

psql -U postgres  -- 登录
ALTER USER postgres WITH PASSWORD '<your new password>';  -- 修改密码

在这里插入图片描述
修改好了,后面我就可以通过123456登录账户postgres了。

2.4 恢复配置文件

将刚刚修改的改回去。
将刚刚修改的改回去。
将刚刚修改的改回去。

另外,补充一点,配置文件刚刚修改的内容,其实都是登录数据库的方式。除了免密登录的trust,常用的两种就是:md5scram-sha-256

md5使用不太安全的质询-响应机制,它可以防止密码嗅探并避免以纯文本形式将密码存储在服务器上,但如果攻击者设法从服务器窃取密码哈希,则无法提供任何保护。此外,MD5 散列算法现在不再被认为可以抵御确定的攻击。但是,md5是目前使用较广泛的方法。
scram-sha-256也是一种质询-响应方案,可防止在不受信任的连接上嗅探密码,并支持以被认为是安全的加密散列形式将密码存储在服务器上。scram-sha-256是当前提供的方法中最安全的,但旧客户端库不支持它。

参考:
如何重置pgsql的密码

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐