【问题标题】:How to alter role from command line in postgresql?如何从 postgresql 中的命令行更改角色?
【发布时间】:2015-04-19 13:06:20
【问题描述】:

我正在尝试构建一个设置脚本来自动创建开发环境,但我在尝试管道或为 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 文件中执行这个简单的命令?

第二个,不太相关:如何在通过管道链接的命令中使用不同的用户?

【问题讨论】:

  • 你为什么使用sudosu?不能直接启动psql -U postgres吗?

标签: postgresql ubuntu sh


【解决方案1】:

问题在于su 缺少-c--command 以表明该行的其余部分是命令。

但无论如何都不需要su,因为已经有sudo。改为这样做:

sudo -u postgres psql -c "ALTER ROLE postgres WITH password 'pass'"

【讨论】:

  • 完美。这是要走的路
【解决方案2】:

如果你和我一样,请确保你不是从以下位置运行它:

bash-4.2$

但是:

postgres=#

【讨论】:

    猜你喜欢
    • 2021-07-29
    • 2012-10-18
    • 2014-12-07
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    相关资源
    最近更新 更多