如何从命令行为bash自动化创建Postgres用户

时间:2013-09-10 09:33:29

标签: postgresql ubuntu postgresql-9.2

我正在使用Ubuntu 12.04和Postgress 9.2。

我需要使用此密码创建此用户,例如

postgres://admin:test101@127.0.0.1:5432

如何从命令行执行此操作?我需要使用bash脚本进行自动化。我有一个全新的安装。

4 个答案:

答案 0 :(得分:88)

这将在localhost上创建密码为test101的用户admin:

psql -c "CREATE USER admin WITH PASSWORD 'test101';"

答案 1 :(得分:33)

要从任何用户运行它,只需将sudo -u postgres添加到其中:

sudo -u postgres bash -c "psql -c \"CREATE USER vagrant WITH PASSWORD 'vagrant';\""

答案 2 :(得分:1)

例如,要在原始docker映像上运行它,您可以将su -c用户的postgres命令与psql结合使用:

su -c "psql -c \"CREATE ROLE my_user WITH LOGIN PASSWORD 'my_password' \"" postgres

答案 3 :(得分:0)

如果您从root运行,可能会收到类似could not change directory to "/root": Permission denied的错误 所以最好像-i这样运行sudo:
sudo -i -u postgres psql -c "CREATE USER myuser WITH PASSWORD 'myuser1234';"