PostgreSQL之密碼文件.pgpass


pg初始化的數據庫默認認證方式為trust,該方式允許不輸入密碼即可登錄數據庫

trust認證的pg_hba.conf配置如下:

很明顯,不安全

 

新初始化了一個md5認證的數據庫(也可以直接修改已有數據庫配置)

 

./initdb -Upostgres -A md5 -D ../data1 -W

 

md5認證的pg_hba.conf配置如下:

 

 

啟動后登錄該數據庫就需要輸入密碼了

[postgres@mingfan bin]$ ./psql -Upostgres -dpostgres -p5433
Password for user postgres:
psql (13.0)
Type "help" for help.

postgres=#

 

關於.pgpass

對數據庫的大多數訪問(包括psql程序)都通過libpq庫進行。該庫包含一項功能,如果指定一個名為.pgpass的文件(或PGPASSFILE引用的文件),則可以在其中放置以用戶身份連接所需的密碼。

好處​:這允許通過諸如cron之類的機制自動執行日常管理任務​。

.pgpass文件內容格式如下​:

hostname:port:database:username:password 

 

需要注意:

1、當密碼包含冒號(:)時,必須用反斜杠(\ :)進行轉義

2、字符“ *”可以匹配任何字段中的任何值(密碼除外)

3、如果設置了環境變量PGPASSWORD,則不會讀取〜/ .pgpass文件

4、Windows 7 64位上帶有空格的路徑的示例PGPASSFILE值:

設置PGPASSFILE = C:\ Program Files \ someapp \ pgpass.conf

5、請注意,環境變量值不得使用“(雙引號)

6、關於權限:在 Unix 系統上,口令文件上的權限必須不允許所有人或組內訪問,可以用chmod 0600 ~/.pgpass這樣的命令實現。如果權限沒有這么嚴格,該文件將被忽略。在Windows上,該文件被假定存儲在一個安全的目錄中,因此不會進行特別的權限檢查。

 

實例:

vim ~/.pgpass
#寫入
localhost:5433:postgres:postgres:123456
#修改權限
chmod 0600 ~/.pgpass

 

檢查下

 

 

此時本地登錄數據庫就不需要密碼輸入了

[postgres@mingfan bin]$ ./psql -Upostgres -dpostgres -p54321
psql (13.0)
Type "help" for help.

postgres=# 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM