From a254241329325cc429dce579c75272a79b1b1b3b Mon Sep 17 00:00:00 2001 From: bucde Date: Mon, 13 Sep 2021 11:02:02 +0200 Subject: [PATCH] feat: add create_customer script --- create_customer | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 create_customer diff --git a/create_customer b/create_customer new file mode 100755 index 0000000..b00264f --- /dev/null +++ b/create_customer @@ -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!'