我正在尝试在脚本中执行此操作:
» sudo -u postgres createuser -PE -s user1
Enter password for new role:
我不想postgres
以交互方式询问密码,所以我想做:
» sudo -u postgres createuser -PE -s user1 < /tmp/xxx
其中/tmp/xxx
包含新用户的密码。但它不起作用。如何让这个工作?
我正在尝试在脚本中执行此操作:
» 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
在以超级用户(例如)连接到相关数据库后,您可以使用普通 SQL 执行此操作:
create user user1 password 'foobar'
如果您需要在脚本中执行此操作,您可以将其放入 sql 文件中,然后将其传递给 psql:
» sudo -u postgres psql --file=create_user.sql
在 shell 中,您可以使用 here-document,例如:
#!/bin/sh
psql -U postgres postgres <<OMG
CREATE USER lutser password '`cat /tmp/xxx`' ;
OMG
顺便说一句:我认为将密码存储在 中/tmp/
不是一个好主意,甚至暂时也不是。