本篇介紹如何在 psql
中使用指令更改 PostgreSQL 使用者帳號的密碼。
若要更改 PostgreSQL 使用者帳號的密碼,最標準的作法就是先使用 psql
連線至 PostgreSQL 伺服器:
# 使用 psql 連線至 PostgreSQL 伺服器
psql
接著再使用 \password
這個 meta 指令來更改自己的密碼。
-- 更改自己的密碼 \password
如果要變更其他使用者的密碼,則要使用 PostgreSQL 管理者的帳號登入:
# 以 PostgreSQL 管理者登入 sudo -u postgres psql
再用 \password
變更指定帳號的密碼:
-- 更改 gtwang 的密碼 \password gtwang
另外一種修改密碼的方式是使用 ALTER USER
這個 SQL 指令:
-- 更改 gtwang 的密碼 ALTER USER gtwang WITH PASSWORD 'new_password';
不過這種方式會讓未加密的密碼儲存於 ~/.psql_history
這個歷史紀錄檔中,所以若用這種方式的話,建議事後要把該紀錄檔刪除。
# 刪除 psql 歷史紀錄檔
rm ~/.psql_history
PostgreSQL 對於本機的使用者預設會使用 peer
的方式來認證,也就是說如果透過 Unix-domain socket 連到 PostgreSQL 資料庫,是不需要使用到密碼的,只有使用 TCP/IP socket 連線的時候,才會使用密碼認證。
如果想要更改認證的方式,可以參考 PostgreSQL 的官方文件,修改 pg_hba.conf
這個設定檔。
參考資料:StackOverflow