我有一個應用程序創建postgres數據庫,擁有postgres數據庫的用戶擁有/ bin/nologin作爲他們的shell。postgres user with/bin/nologin
該數據庫功能沒有錯誤,並且也是安全的。由於最佳實踐,不要將Linux shell分配給postgres數據庫所有者,postgres以該用戶身份運行。
但是我必須爲了歸檔目的採取這個數據庫的pg_dump,我怎麼能沒有分配一個有效的shell到數據庫運行的用戶名呢?
我有一個應用程序創建postgres數據庫,擁有postgres數據庫的用戶擁有/ bin/nologin作爲他們的shell。postgres user with/bin/nologin
該數據庫功能沒有錯誤,並且也是安全的。由於最佳實踐,不要將Linux shell分配給postgres數據庫所有者,postgres以該用戶身份運行。
但是我必須爲了歸檔目的採取這個數據庫的pg_dump,我怎麼能沒有分配一個有效的shell到數據庫運行的用戶名呢?
sudo -u pe-postgres /opt/puppetlabs/server/apps/postgresql/bin/pg_dumpall -c -f <BACKUP_FILE>.sql
的伎倆
這完全沒有問題。
pg_dump
是一個客戶端工具,您可以在同一臺機器上或從不同的機器上將其用作不同的用戶。
使用-h <host/socket> -p <port>
選項pg_dump
可以連接到可能位於不同計算機上的數據庫服務器,並使用-U <user>
指定要連接的數據庫用戶。
收到此消息 – a3kartik
[根@ 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
除非配置了'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)來允許你的連接嘗試。 –
'pg_dump的-U some_db_user ...'從任何地方,你可以連接到數據庫 –