|
|
- #!/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!'
|