如何在postgresql中从命令行更改角色?
我试图构建一个安装脚本来自动化开发环境的创建,但是我在尝试管道或使用psql的-c修饰符时遇到了问题 我试过:如何在postgresql中从命令行更改角色?,postgresql,ubuntu,sh,Postgresql,Ubuntu,Sh,我试图构建一个安装脚本来自动化开发环境的创建,但是我在尝试管道或使用psql的-c修饰符时遇到了问题 我试过: sudo su postgres psql -c "ALTER ROLE postgres WITH password 'pass'" 及 两者都表示“未找到ALTER:command” 我也尝试过管道,但我无法将其与su正确结合 我试过类似的东西 sudo su postgres echo "ALTER ROLE postgres WITH password 'pass'" | p
sudo su postgres psql -c "ALTER ROLE postgres WITH password 'pass'"
及
两者都表示“未找到ALTER:command”
我也尝试过管道,但我无法将其与su正确结合
我试过类似的东西
sudo su postgres echo "ALTER ROLE postgres WITH password 'pass'" | psql
但postgres不能执行“echo”
以及:
这根本不起作用
所以,我的第一个问题是:如何从sh文件执行这个简单的命令
第二个,不太相关:如何在与管道链接的命令中使用不同的用户 问题在于
su
缺少-c
或-command
来指示行的其余部分是命令
但是无论如何都不需要su
,因为已经有了sudo
。改为这样做:
sudo -u postgres psql -c "ALTER ROLE postgres WITH password 'pass'"
如果您和我一样,请确保您不是从以下位置运行此操作:
bash-4.2$
但是:
postgres=#
为什么要使用sudo
或su
?你不能直接启动psql-U postgres吗?太好了。这就是路
echo "ALTER ROLE postgres WITH password 'pass'" | sudo su psql
sudo -u postgres psql -c "ALTER ROLE postgres WITH password 'pass'"