linux - 添加具有 super 用户权限的 postgres 用户的 shell 脚本

标签 linux postgresql shell centos

我正在尝试编写 shell 脚本来创建具有 super 用户权限的 postgres 数据库用户,然后通过使用新创建的用户登录自动运行一些 sql 脚本。

我尝试了下面的两个脚本,但我正在进入 psql 交互模式,我们如何避免任何外部输入并提供所有必需的凭据并使用给定路径中的一些脚本完成创建用户/数据库/和表。如果有任何不清楚的地方,请允许我更正。

脚本1:

#!/bin/sh
username="testuser"
psql $username << EOF
CREATE ROLE $username WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'password';
EOF

以“root”身份运行上述脚本时的结果 评论:testuser是linux用户不是postgres用户??

Password:   

注释:用户“testuser”的密码输入

psql: FATAL:  password authentication failed for user "root"

脚本2

#!/bin/sh
username="testuser"
echo """
CREATE ROLE $username WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD    'password';
""" | psql

最佳答案

psql -c 在不进入交互模式的情况下执行命令。 查看http://www.postgresql.org/docs/9.3/static/app-psql.html

关于linux - 添加具有 super 用户权限的 postgres 用户的 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25758227/

相关文章:

c++ - 是否可以在系统 "espeak"中使用 ("");功能?

Postgresql 包含 "optional",可为空的外键?

shell - 在 PowerShell 中添加数字

java - 将 log4j.properties 移出 jar 导致 log4j 警告(不生成日志)

linux - 如何将 echo 语句和 arp 语句的输出放在一行中?

linux -/dev/random 被认为是真正随机的吗?

linux - 需要从 3 行连续的文本创建一条记录

linux - 使用 daystart 和 mmin 查找命令

postgresql - Postgres 表中的列顺序会影响性能吗?

sql - 使用 SQL 组织日期/时间表 - Postgres