PostgreSQL:在 Ubuntu 上重置 PostgreSQL 的密码 [关闭]

2024-02-19

在 Ubuntu 中,我安装了 PostgreSQL 数据库并为服务器创建了一个超级用户。

如果我忘记了 postgresql 超级用户的密码,如何为该用户重置它(密码)?

我尝试卸载它然后再次安装,但之前创建的超级用户被保留。


假设你是机器的管理员,Ubuntu 已授予你以下权限:sudo以任何用户身份运行任何命令。
同时假设您没有限制以下权利pg_hba.conf文件(在/etc/postgresql/9.1/main目录),它应该包含这一行作为第一条规则:

# Database administrative login by Unix domain socket  
local   all             postgres                                peer

(关于文件位置:9.1是主要的 postgres 版本并且main您的“集群”的名称。如果使用较新版本的 postgres 或非默认名称,则会有所不同。使用pg_lsclusters命令获取您的版本/系统的此信息)。

无论如何,如果pg_hba.conf文件没有该行,编辑文件,添加它,然后重新加载服务sudo service postgresql reload.

然后你应该能够登录psql作为 postgres 超级用户使用以下 shell 命令:

sudo -u postgres psql

进入 psql 后,发出 SQL 命令:

ALTER USER postgres PASSWORD 'newpassword';

在此命令中,postgres是超级用户的名称。如果忘记密码的用户是ritesh,命令为:

ALTER USER ritesh PASSWORD 'newpassword';

参考:PostgreSQL 9.1.13 文档,第 19 章。客户端身份验证 http://www.postgresql.org/docs/9.1/interactive/client-authentication.html

请记住,您需要输入postgres与单个S在最后

如果在命令历史记录或服务器日志中以明文形式保留密码是一个问题,psql 提供了一个交互式元命令来避免这种情况,作为替代ALTER USER ... PASSWORD:

\password username

它要求双盲输入密码,然后根据password_encryption https://www.postgresql.org/docs/current/runtime-config-connection.html#GUC-PASSWORD-ENCRYPTION设置并发出ALTER USER使用密码的哈希版本而不是明文版本向服务器发送命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostgreSQL:在 Ubuntu 上重置 PostgreSQL 的密码 [关闭] 的相关文章

随机推荐