如何从 postgresql 中的命令行更改角色?
How to alter role from command line in postgresql?
我正在尝试构建一个安装脚本来自动创建开发环境,但我在尝试通过管道传输或使用 psql 的 -c 修饰符时遇到了问题。
我试过:
sudo su postgres psql -c "ALTER ROLE postgres WITH password 'pass'"
和
sudo su postgres psql -c "ALTER ROLE postgres WITH password 'pass';"
两者都说 "ALTER: command not found"
我也尝试过 pipe,但我无法将它与 su 正确结合
例如:我试过
sudo su postgres echo "ALTER ROLE postgres WITH password 'pass'" | psql
但是postgres无法执行"echo"
并且:
echo "ALTER ROLE postgres WITH password 'pass'" | sudo su psql
这是行不通的。
所以,我的第一个问题是:如何从 sh 文件执行这个简单的命令?
第二个不太相关:如何在用管道链接的命令中使用不同的用户?
错误在于 su
缺少 -c
或 --command
以指示该行的其余部分是命令。
但是su
反正也不需要了,因为已经有sudo
了。改为这样做:
sudo -u postgres psql -c "ALTER ROLE postgres WITH password 'pass'"
如果你和我一样,请确保你不是 运行 这个来自:
bash-4.2$
但是:
postgres=#
我正在尝试构建一个安装脚本来自动创建开发环境,但我在尝试通过管道传输或使用 psql 的 -c 修饰符时遇到了问题。
我试过:
sudo su postgres psql -c "ALTER ROLE postgres WITH password 'pass'"
和
sudo su postgres psql -c "ALTER ROLE postgres WITH password 'pass';"
两者都说 "ALTER: command not found"
我也尝试过 pipe,但我无法将它与 su 正确结合
例如:我试过
sudo su postgres echo "ALTER ROLE postgres WITH password 'pass'" | psql
但是postgres无法执行"echo"
并且:
echo "ALTER ROLE postgres WITH password 'pass'" | sudo su psql
这是行不通的。
所以,我的第一个问题是:如何从 sh 文件执行这个简单的命令?
第二个不太相关:如何在用管道链接的命令中使用不同的用户?
错误在于 su
缺少 -c
或 --command
以指示该行的其余部分是命令。
但是su
反正也不需要了,因为已经有sudo
了。改为这样做:
sudo -u postgres psql -c "ALTER ROLE postgres WITH password 'pass'"
如果你和我一样,请确保你不是 运行 这个来自:
bash-4.2$
但是:
postgres=#