|
@ -0,0 +1,41 @@ |
|
|
|
|
|
#!/bin/bash |
|
|
|
|
|
|
|
|
|
|
|
echo '####################################################################' |
|
|
|
|
|
echo '# docker_postgres_create_customer_script #' |
|
|
|
|
|
echo '# Dennis Buchhorn - bucde@b-eit.de #' |
|
|
|
|
|
echo '####################################################################' |
|
|
|
|
|
echo '# WARNING: password is clear text! #' |
|
|
|
|
|
#echo '# #' |
|
|
|
|
|
echo '####################################################################' |
|
|
|
|
|
echo '' |
|
|
|
|
|
|
|
|
|
|
|
POSTGRES_ADMIN_USER='' |
|
|
|
|
|
POSTGRES_CUSTOMER_NAME='' |
|
|
|
|
|
POSTGRES_CUSTOMER_PASSWORD='' |
|
|
|
|
|
|
|
|
|
|
|
read -p 'Enter postgres admin user name: ' POSTGRES_ADMIN_USER |
|
|
|
|
|
read -p 'Enter customer name: ' POSTGRES_CUSTOMER_NAME |
|
|
|
|
|
read -p 'Enter customer password: ' POSTGRES_CUSTOMER_PASSWORD |
|
|
|
|
|
|
|
|
|
|
|
POSTGRES_CUSTOMER_DBNAME="${POSTGRES_CUSTOMER_NAME}db" |
|
|
|
|
|
|
|
|
|
|
|
rm -f tmp |
|
|
|
|
|
touch tmp |
|
|
|
|
|
echo "CREATE ROLE "$POSTGRES_CUSTOMER_DBNAME" NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT NOLOGIN;" >> tmp |
|
|
|
|
|
echo "CREATE ROLE "$POSTGRES_CUSTOMER_NAME" NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN ENCRYPTED PASSWORD '"$POSTGRES_CUSTOMER_PASSWORD"';" >> tmp |
|
|
|
|
|
echo "GRANT "$POSTGRES_CUSTOMER_DBNAME" TO "$POSTGRES_CUSTOMER_NAME";" >> tmp |
|
|
|
|
|
echo "CREATE DATABASE "$POSTGRES_CUSTOMER_DBNAME" WITH OWNER="$POSTGRES_CUSTOMER_NAME";" >> tmp |
|
|
|
|
|
echo "REVOKE ALL ON DATABASE "$POSTGRES_CUSTOMER_DBNAME" FROM public;" >> tmp |
|
|
|
|
|
|
|
|
|
|
|
cat tmp | docker exec -i postgres psql -U $POSTGRES_ADMIN_USER -d template1 |
|
|
|
|
|
|
|
|
|
|
|
rm -f tmp |
|
|
|
|
|
touch tmp |
|
|
|
|
|
echo "GRANT ALL ON SCHEMA public TO "$POSTGRES_CUSTOMER_NAME" WITH GRANT OPTION;" >> tmp |
|
|
|
|
|
|
|
|
|
|
|
cat tmp | docker exec -i postgres psql -U $POSTGRES_ADMIN_USER -d $POSTGRES_CUSTOMER_DBNAME |
|
|
|
|
|
|
|
|
|
|
|
rm -f tmp |
|
|
|
|
|
|
|
|
|
|
|
echo "Database '"$POSTGRES_CUSTOMER_DBNAME"' with user '"$POSTGRES_CUSTOMER_NAME"' created." |
|
|
|
|
|
echo 'Done!' |