我正在尝试编写shell脚本来创建具有超级用户权限的postgres db用户,然后通过使用新创建的用户登录来自动运行一些sql脚本。
我尝试了下面的两个脚本,但是我进入了psql交互模式,我们如何避免任何外部输入并提供所需的所有凭据,并在给定路径中使用某些脚本完成创建user / db /和表。如果有什么不清楚,请允许我纠正。
SCRIPT1:
#!/bin/sh
username="testuser"
psql $username << EOF
CREATE ROLE $username WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'password';
EOF
在脚本上方运行时的结果为&#39; root&#39; 评论:testuser是一个linux用户而不是postgres用户??
Password:
评论:用户&#39; testuser&#39;
的密码输入psql: FATAL: password authentication failed for user "root"
SCRIPT2
#!/bin/sh
username="testuser"
echo """
CREATE ROLE $username WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'password';
""" | psql