pgsql ident鑑權方式實現無密碼登陸,無需.pgpass

PostgreSQL 命令行 psql,pg_dump等不支持口令參數,也就沒法像mysql那樣無需人工干預(輸入口令)執行備份、恢復數據庫的命令。html

網上搜索有多種解決辦法,好比經過設置PostgreSQL的環境變量參數來實現保存密碼,或者經過Expect 來實現自動交互,幫助輸入密碼,或者用.pgpass 來保存密碼。 參考連接 http://bbs.chinaunix.net/thread-1760961-1-1.html mysql

這些方法都存在必定的安全隱患。其實pgsql在把安全性搞得如此高同時也提供了簡單的解決辦法,即pg_hba.conf中 ident鑑權驗證方式sql

修改 pg_hba.conf 文件,添加到設置開始的第一位shell

local all all ident map=map1

並把已有的local行註釋行爲以下結果數據庫

#local all all md5

而後編輯 pg_ident.conf,添加安全

map1 root postgres

而後重啓pgsql服務或者reload,若是當前系統用戶是root,則可這樣直接直接登陸數據庫ide

psql -Upostgres

其餘具備sudo權限的用戶也可這樣免口令登陸post

sudo /usr/pgsql-9.1/bin/psql -Upostgre

 

注:pg_ident.conf 支持正則匹配
.net

參考文檔:命令行

http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html

http://www.postgresql.org/docs/current/static/auth-username-maps.html

相關文章
相關標籤/搜索