sql-server - 如何编写 bash 和 sql 文件来设置 postgres 用户?

标签 sql-server linux bash postgresql shell

我正在尝试创建 bash 和 sql 文件来创建用户和数据库..

这是我到目前为止所做的事情..

Setup_postgres.sql

Create USER dummbyuser;
 ALTER USER dummbyuser with superuser;
 ALTER USER dummbyuser with LOGIN;
/q  

Setup_postgres.sh

sudo su - postgress
psql -f setup_postgres.sql;
sh setup_postgres.sql
logout

我的问题[已解决]

我告诉bash运行Setup_postgres.sh,但它在
之后挂起 sudo su - postgres 行 setup_postgres.sql 根本不运行。

有人对我做错了什么有任何想法吗?
这是正确的方法吗?
我编写 bash 文件的经验很少。

脚本是否可以提示用户输入“dummbyuser”的名称

最佳答案

您正在使用 sudo su - postgres 为 postgres 用户启动一个新的登录 shell。从该 shell 退出后,脚本的其余部分将运行,但不具有 postgres 用户权限。

您可以像这样修改脚本以使其正常工作:

#!/bin/bash

sudo -iu postgres psql < setup_postgres.sql

这将以 postgres 用户权限运行指定的 psql 命令。

关于sql-server - 如何编写 bash 和 sql 文件来设置 postgres 用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26963334/

相关文章:

sql - 如何检查数据库中是否存在 View ?

mysql - 使用 SQL 数据库中另一个表中的数据从两个表中获取数据

linux - 使用 Bash 删除文本文件中的列?

sql - 使用 SQL Server 用逗号分割字符串但忽略双引号内的逗号

sql - 选择中间行失败,只有一行

php - 确保Linux上只有一个正在运行的PHP进程

linux - 将多个域托管到同一服务器

linux - 如何从输入文件读取路径

linux - 通过登录脚本跟踪路径

linux - 在 Linux 中比较两个不同目录中的文件