2016-01-13 112 views
0

一个批处理如何创建许多PostgreSQL数据库和用户,每个用户有一个数据库?如何批量创建PostgreSQL数据库?

我有一个Linux用户名列表,我需要为每个linux用户名创建一个新的postgres用户,然后为主文件夹中的新用户创建一个独有的数据库,除了根目录外,其他用户都无法看到这个数据库。

我知道如何使用CREATE DATABASE但我不太熟悉PostgreSQL中的循环等。任何指针赞赏。

回答

0

从外壳做它,它就会少了很多工作:

$ for user in $(cat usernames.txt); do 
    createuser -e $user 
    createdb -e -O $user $user 
done; 

顺便说一句,随机Postgres的命令,你可以使用psql -c运行命令行SQL非交互方式。

1

一种方法是让喜欢db.sh

#!/bin/sh 

users="foo bar baz" 

for user in $users 
do 
    PGUSER=pguser createdb $user 
done 

一个shell脚本,然后做一个

chmod 0755 db.sh 

而且随着

./db.sh 

执行它,您可能需要更改PGUSER到你的环境。

壳环: http://www.tutorialspoint.com/unix/unix-loop-control.htm