PostgreSQL数据库修改密码的几种方法

 更新时间:2026年06月15日 09:08:44   作者:6v6-博客网  
PostgreSQL 是一款功能强大的开源关系型数据库,在实际运维中,定期修改数据库密码是保障安全的基本操作,本文将系统介绍几种修改 PostgreSQL 用户密码的方法,涵盖命令行与图形界面,以及忘记密码时的应急处理,需要的朋友可以参考下

引言

PostgreSQL 是一款功能强大的开源关系型数据库。在实际运维中,定期修改数据库密码是保障安全的基本操作。本文将系统介绍几种修改 PostgreSQL 用户密码的方法,涵盖命令行与图形界面,以及忘记密码时的应急处理。

一、使用 psql 命令行修改密码

psql 是 PostgreSQL 自带的交互式终端。通过它可以方便地修改密码。

1. 修改当前登录用户的密码

在 psql 中执行:

\password

系统会提示输入新密码并确认,输入时不会回显。此命令会为当前登录的用户修改密码,无需额外权限。

2. 修改其他用户的密码(需超级用户权限)

若需要为其他角色修改密码,需以超级用户身份登录(如 postgres),然后使用:

\password 目标用户名

或使用 SQL 命令:

ALTER USER 用户名 WITH PASSWORD '新密码';

如果用户不存在,ALTER USER 会报错;若需同时创建用户,可使用 CREATE USER

示例:

ALTER USER app_user WITH PASSWORD 'Str0ngP@ssw0rd';

二、忘记密码时如何重置

若遗忘了所有超级用户的密码,无法登录,可通过修改认证配置文件临时绕过密码验证。

找到 PostgreSQL 数据目录下的 pg_hba.conf 文件。常见路径:

  • Linux: /etc/postgresql/版本号/main/pg_hba.conf/var/lib/pgsql/数据目录/pg_hba.conf
  • Windows: 安装目录下的 data 文件夹内

用文本编辑器打开 pg_hba.conf,找到类似以下的行:

local   all   all   md5

host    all   all   127.0.0.1/32   md5

md5(或 scram-sha-256)临时改为 trust,表示本地连接无需密码。

重启 PostgreSQL 服务:

sudo systemctl restart postgresql   # Linux
# 或在 Windows 服务管理器中重启

现在可以免密登录:

psql -U postgres

登录后立即修改密码:

ALTER USER postgres WITH PASSWORD '新密码';

务必还原 pg_hba.conf 的认证方式为原来的 md5scram-sha-256,并重启服务,恢复密码保护。

三、使用 pgAdmin 图形界面修改密码

对于偏好图形化操作的用户,pgAdmin 提供了直观的密码修改途径。

  1. 打开 pgAdmin 并连接到数据库服务器。
  2. 在左侧浏览器树中,展开“Login/Group Roles”。
  3. 右键点击要修改的用户,选择“Properties”。
  4. 在“Definition”选项卡中输入新密码。
  5. 点击“Save”保存更改。

该方法同样要求当前登录用户具备足够的权限(超级用户或具有 CREATEROLE 权限的普通用户)。

四、注意事项

  • 密码加密方式:PostgreSQL 10 及以上版本默认使用 SCRAM-SHA-256 加密。可通过 SHOW password_encryption; 查看。若希望沿用旧的 MD5 加密,可设置 password_encryption = 'md5'postgresql.conf,然后重新加载配置。
  • pg_hba.conf 修改后生效:修改认证文件后,需发送 SIGHUP 信号或重启服务才生效。可使用 pg_ctl reloadsystemctl reload postgresql 平滑重载,无需完全重启。
  • 安全保管密码:务必使用强密码,并定期更换。避免在脚本中以明文形式传递密码,可使用 .pgpass 文件或环境变量 PGPASSWORD(但后者不推荐在多用户系统上使用)。

结语

掌握 PostgreSQL 密码的修改与重置方法是每位数据库管理员和开发者的基本功。无论是日常维护还是应急处理,以上几种方法都能助你快速解决问题。养成定期更新密码、限制信任认证使用的好习惯,能让你的数据库更加安全可靠。

以上就是PostgreSQL数据库修改密码的几种方法的详细内容,更多关于PostgreSQL密码修改方法的资料请关注脚本之家其它相关文章!

相关文章

  • 详解PostgreSQL启动停止命令(重启)

    详解PostgreSQL启动停止命令(重启)

    这篇文章主要介绍了PostgreSQL启动停止命令(重启)的相关资料,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • Docker安装PostgreSQL数据库的详细步骤

    Docker安装PostgreSQL数据库的详细步骤

    这篇文章主要介绍了Docker安装PostgreSQL数据库的详细步骤,包括启动PostgreSQL容器、获取容器的IP地址、启动一个新的CentOS容器、在CentOS容器中安装PostgreSQL客户端、通过psql客户端连接到PostgreSQL容器和在PostgreSQL中执行SQL操作等内容,需要的朋友可以参考下
    2024-10-10
  • postgresql 常用SQL语句小结

    postgresql 常用SQL语句小结

    postgresql使用过程中常用到的一些sql语句,方便我们快速使用查询一些操作特整理一下,方便需要的朋友
    2022-11-11
  • CVE-2019-9193之PostgreSQL 任意命令执行漏洞的问题

    CVE-2019-9193之PostgreSQL 任意命令执行漏洞的问题

    这篇文章主要介绍了CVE-2019-9193:PostgreSQL 任意命令执行漏洞,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • PostgresSql 多表关联删除语句的操作

    PostgresSql 多表关联删除语句的操作

    这篇文章主要介绍了PostgresSql 多表关联删除语句的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • postgreSQL中的内连接和外连接实现操作

    postgreSQL中的内连接和外连接实现操作

    这篇文章主要介绍了postgreSQL中的内连接和外连接实现操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL 16 新特性之正态分布随机数函数的示例

    PostgreSQL 16 新特性之正态分布随机数函数的示例

    这篇文章主要介绍了PostgreSQL 16 新特性之正态分布随机数函数,PostgreSQL 16 新增了一个内置的 random_normal() 函数,用于生成这种随机数,通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • PostgreSQL 数组类型操作使用及特点详解

    PostgreSQL 数组类型操作使用及特点详解

    这篇文章主要为大家介绍了PostgreSQL 数组类型操作使用及特点详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Postgresql去重函数distinct的用法说明

    Postgresql去重函数distinct的用法说明

    这篇文章主要介绍了Postgresql去重函数distinct的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 如何修改Postgresql默认账号postgres的密码

    如何修改Postgresql默认账号postgres的密码

    PostgreSQL数据库创建一个postgres用户作为数据库的管理员,密码随机,所以需要修改密码,这篇文章主要给大家介绍了关于如何修改Postgresql默认账号postgres的密码,需要的朋友可以参考下
    2023-10-10

最新评论