我試圖做到這一點的腳本:創建一個新的Postgres用戶編程,無需互動干預
» sudo -u postgres createuser -PE -s user1
Enter password for new role:
我不想postgres
索要交互密碼,所以我想做的事:
» sudo -u postgres createuser -PE -s user1 < /tmp/xxx
其中/tmp/xxx
包含新用戶的密碼。但它不起作用。任何想法如何得到這個工作?
我試圖做到這一點的腳本:創建一個新的Postgres用戶編程,無需互動干預
» sudo -u postgres createuser -PE -s user1
Enter password for new role:
我不想postgres
索要交互密碼,所以我想做的事:
» sudo -u postgres createuser -PE -s user1 < /tmp/xxx
其中/tmp/xxx
包含新用戶的密碼。但它不起作用。任何想法如何得到這個工作?
你可以做,問題用簡單的SQL連接爲一個超級用戶後(如postgres
)到數據庫:
create user user1 password 'foobar'
如果您需要在腳本中做到這一點,你可以將它放入一個sql文件,然後通過這PSQL:
» sudo -u postgres psql --file=create_user.sql
從貝,你可以使用這裏的文檔,如:
#!/bin/sh
psql -U postgres postgres <<OMG
CREATE USER lutser password '`cat /tmp/xxx`' ;
OMG
順便說一句:我不認爲這是一個好主意,在/tmp/
存儲密碼,甚至暫時。
我明白了,但是......你如何以編程方式輸入密碼,而沒有*某處*?我這樣做的方式是:我將它們放在一個本地文件(純文本)中,並由密碼id進行索引(即密碼文件爲password_id:password。該文件受保護,我可以使用sudo進行訪問。我的密碼管理,通過一個簡單的服務提供訪問這個文件。 – dangonfast