PostgreSQL

关注公众号 jb51net

关闭
首页 > 数据库 > PostgreSQL > PostgreSQL密码修改

PostgreSQL 18 默认密码修改全指南:从安装到安全加固建议

作者:AI题库

本文介绍了PostgreSQL 18的默认密码设置情况,并详细说明了修改默认密码的方法,最后,还解答了常见的安全问题及解决方案,感兴趣的朋友跟随小编一起看看吧

引言

数据库安全是企业和开发者不可忽视的重要环节,而默认密码往往是数据库安全的第一道防线。PostgreSQL作为一款广泛使用的开源关系型数据库,其默认密码设置和修改方法是每个数据库管理员和开发者必须掌握的基础知识。本文将以PostgreSQL 18为例,详细介绍默认密码的情况、修改方法以及安全加固建议。

一、PostgreSQL 18 默认密码背景

1. 初始默认状态

在Ubuntu系统中,PostgreSQL 18安装完成后:

2. 本次安装的默认密码

根据我们的自动化安装脚本postgresql18_quick_install.sh,安装过程中已经主动设置了默认密码:

⚠️ 安全警示:这个默认密码仅用于演示,生产环境必须立即修改,否则存在严重安全风险!

二、修改默认密码的详细步骤

方法1:本地直接修改(推荐)

这种方法适用于可以直接访问服务器的场景,步骤如下:

切换到postgres系统用户

sudo su - postgres

登录PostgreSQL

psql

修改密码

ALTER USER postgres WITH PASSWORD '您的强密码';

建议密码包含:大小写字母、数字、特殊字符,长度至少12位

退出PostgreSQL

\q

退出postgres用户

exit

方法2:通过sudo直接执行命令

如果不想切换用户,可以使用sudo直接执行命令:

# 1. 直接在命令行修改密码
echo "ALTER USER postgres WITH PASSWORD '您的强密码';" | sudo -u postgres psql
# 2. 或使用here-doc方式
sudo -u postgres psql <<EOF
ALTER USER postgres WITH PASSWORD '您的强密码';
EOF

方法3:使用脚本批量修改(适合远程操作)

对于远程服务器或需要批量操作的场景,可以使用脚本方式修改密码,避免复杂的引号嵌套问题:

创建脚本文件 change_pg_password.sh

#!/bin/bash
# 替换为您的sudo密码和新的PostgreSQL密码
SUDO_PASSWORD="<您的sudo密码>"
NEW_PG_PASSWORD="<您的新密码>"
# 执行密码修改命令
echo "$SUDO_PASSWORD" | sudo -S -u postgres psql -c "ALTER USER postgres WITH PASSWORD '$NEW_PG_PASSWORD'"
echo "Password changed successfully!"

给脚本添加执行权限

chmod +x change_pg_password.sh

执行脚本

bash change_pg_password.sh

远程执行脚本(可选)

# 上传脚本到远程服务器
scp -P <端口号> change_pg_password.sh <用户名>@<服务器IP地址>:~
# 远程执行脚本
ssh -t -p <端口号> <用户名>@<服务器IP地址> "bash ~/change_pg_password.sh"

这种方法特别适合在PowerShell等复杂引号环境下执行远程操作,避免了引号嵌套的困扰。

三、验证密码修改是否成功

修改密码后,我们需要验证修改是否生效,可以通过以下方法:

方法1:本地密码连接测试

# 使用-W参数提示输入密码
psql -U postgres -h localhost -W
# 或使用PGPASSWORD环境变量(仅用于测试,不推荐生产使用)
PGPASSWORD='您的新密码' psql -U postgres -h localhost -c 'SELECT version();'

方法2:远程连接测试

如果需要远程连接,确保已配置好pg_hba.conf允许密码认证,然后使用:

# 从远程机器连接
psql -U postgres -h <服务器IP> -p 5432 -W

方法3:查看用户密码状态

sudo -u postgres psql -c "SELECT usename, passwd FROM pg_shadow WHERE usename = 'postgres';"

注意:PostgreSQL会对密码进行哈希处理,无法直接查看明文密码,只能确认用户存在且密码已设置

四、密码修改后的安全加固建议

1. 配置pg_hba.conf,限制访问权限

编辑pg_hba.conf文件,根据实际需求调整认证方式:

sudo nano /etc/postgresql/18/main/pg_hba.conf

推荐配置:

2. 启用强密码策略

postgresql.conf中配置密码策略:

# 启用密码复杂度检查
password_encryption = scram-sha-256
# 设置密码有效期
# password_valid_until = '2025-12-31'

3. 定期更换密码

建立定期密码更换机制,建议每3-6个月更换一次数据库密码。

4. 使用密码管理器

对于复杂的强密码,建议使用专业的密码管理器(如1Password、Bitwarden)进行管理,避免密码丢失或泄露。

五、常见问题与解决方案

问题1:忘记postgres用户密码怎么办?

解决方案

停止PostgreSQL服务

sudo systemctl stop postgresql@18-main

以单用户模式启动

sudo -u postgres postgres --single -D /var/lib/postgresql/18/main

在单用户模式下修改密码

ALTER USER postgres WITH PASSWORD '新密码';

退出单用户模式(按Ctrl+D)

重启PostgreSQL服务

sudo systemctl start postgresql@18-main

问题2:远程连接提示"password authentication failed"?

解决方案

  1. 检查pg_hba.conf是否允许远程IP访问
  2. 确认密码输入正确
  3. 检查postgresql.conflisten_addresses是否设置为'*'

六、总结

PostgreSQL 18默认密码的修改是数据库安全加固的基础步骤,通过本文的详细指南,您应该已经掌握了:

  1. PostgreSQL 18默认密码的背景情况
  2. 两种修改默认密码的方法(本地直接修改和sudo命令修改)
  3. 如何验证密码修改是否成功
  4. 密码修改后的安全加固建议
  5. 常见问题的解决方案

安全无小事,请务必重视数据库默认密码的修改和管理,建立完善的数据库安全管理制度,保护您的数据资产安全。

希望本文对您有所帮助,如果您有任何问题或建议,欢迎在评论区留言讨论!

参考资源

到此这篇关于PostgreSQL 18 默认密码修改全指南:从安装到安全加固建议的文章就介绍到这了,更多相关PostgreSQL密码修改内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文