Categories: 資料庫

PostgreSQL 資料庫 .pgpass 設定檔案教學,不用密碼登入

介紹如何將 PostgreSQL 資料庫的帳號與密碼儲存在 .pgpass 設定檔中,讓登入資料庫時不需要打密碼。

在 Linux 系統中可以將 PostgreSQL 資料庫的帳號與密碼儲存於 $HOME/.pgpass 這個設定檔中,這樣在登入 PostgreSQL 資料庫時就可以不需要輸入密碼。

.pgpass 設定檔中可以設定多組帳號與密碼,其格式如下:

hostname:port:database:username:password

設定檔的每一行都有五個欄位,可以是普通字串或是萬用字元(*),登入 PostgreSQL 資料庫時會逐一檢查每一行的設定,使用最先符合那一行的密碼。

以下是一個簡單的範例:

# 資料庫帳號密碼設定
localhost:5432:myuser:mydb:mypassword

# 自訂預設密碼
localhost:5432:*:*:mypassword2

由於 .pgpass 設定檔中有儲存敏感的帳號與密碼,所以使用前必須將其檔案權限設定為 600,讓除了自己以外的人都不能讀取:

# 設定檔案權限
chmod 600 .pgpass

設定好 .pgpass 之後,就可以直接使用 psql 登入資料庫,只要登入的條件匹配成功,就可以直接使用 .pgpass 中所記錄的密碼登入資料庫:

# 連線至資料庫
psql -h localhost -U myuser mydb

PostgreSQL 的帳號與密碼設定檔除了使用預設的 $HOME/.pgpass 之外,亦可使用 PGPASSFILE 這個環境變數自訂設定檔:

# 自訂 PostgreSQL 帳號與密碼設定檔
export PGPASSFILE=/path/to/mypgpass.txt

postgres 帳號密碼

另外補充說明一點,postgres 資料庫管理帳號預設是沒有密碼的,如果需要讓 postgres 帳號亦可透過 .pgpass 的方式登入,可以先以一般的方式用 postgres 帳號登入資料庫之後,使用 \password 設定 postgres 帳號的密碼,再將密碼放在 .pgpass 之中即可。

Share
Published by
Office Guide
Tags: PostgreSQL

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

9 個月 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

9 個月 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

9 個月 ago

Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例

本篇介紹如何在 Windows...

10 個月 ago

Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例

介紹如何在 Linux 中使用...

11 個月 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

11 個月 ago