PostgreSQL中密码相关

86 阅读1分钟

首次登录设置密码

PostgreSQL中postgres用户是默认的,首次登录需要设置postgres用户密码,在Linux系统中以postgres用户登录然后设置密码

sudo -u postgres psql postgres

# 以下是在psql中执行的命令
ALTER USER postgres with encrypted password 'postgres';

更改密码模式

密码模式md5更换成scram-sha-256后登录不成功,主要是因为pg_authid表没有更新。两处配置文件需要更新,reload数据库,重新更新用户密码。

  1. postgresql.conf
password_encryption = scram-sha-256
  1. pg_hba.conf
... scram-sha-256

密码安全

  1. .psql_history文件。可以使用createuser命令的prompt形式输入密码
  2. 设置postgresql.conf文件中的log_statement = null配置,或者create user test \password
  3. 使用.pgpass,建议使用peer的method
  4. 可以新建一个transaction,临时将log_statement设置为none
set local log_statement = 'none'

密码存储位置

pg_authidpg_shadow这2个表都有hash后的password,md5方式是

echo -n ${password}${username} | md5sum

结果是加上md5前缀拼接而成。

pg_hba.conf中entry

一般tight connection match parameters和weak authentication methods放在前面。