2016-07-29 43 views
-1

我有一個應用程序創建postgres數據庫,擁有postgres數據庫的用戶擁有/ bin/nologin作爲他們的shell。postgres user with/bin/nologin

該數據庫功能沒有錯誤,並且也是安全的。由於最佳實踐,不要將Linux shell分配給postgres數據庫所有者,postgres以該用戶身份運行。

但是我必須爲了歸檔目的採取這個數據庫的pg_dump,我怎麼能沒有分配一個有效的shell到數據庫運行的用戶名呢?

+1

'pg_dump的-U some_db_user ...'從任何地方,你可以連接到數據庫 –

回答

0
sudo -u pe-postgres /opt/puppetlabs/server/apps/postgresql/bin/pg_dumpall -c -f <BACKUP_FILE>.sql 

的伎倆

0

這完全沒有問題。

pg_dump是一個客戶端工具,您可以在同一臺機器上或從不同的機器上將其用作不同的用戶。

使用-h <host/socket> -p <port>選項pg_dump可以連接到可能位於不同計算機上的數據庫服務器,並使用-U <user>指定要連接的數據庫用戶。

+0

收到此消息 – a3kartik

+0

[根@ test56〜]#的/ opt/puppetlabs/server/bin目錄/ pg_dump -U pe-puppetdb -d pe-puppetdb> /var/tmp/db.$(date +%Y-%m-%d%H:%M:%S).dump pg_dump:[archiver(db )]與數據庫「pe-puppetdb」的連接失敗:致命:用戶「pe-puppetdb」的對等身份驗證失敗 – a3kartik

+0

除非配置了'map',[peer authentication](https://www.postgresql.org/docs/ current/static/auth-methods.html#AUTH-PEER)只有在您是操作系統用戶pe-puppetdb時才能使用。你必須配置['pg_hba.conf'](https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html)來允許你的連接嘗試。 –