You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.8 KiB

  1. #!/bin/bash
  2. echo '####################################################################'
  3. echo '# docker_postgres_create_customer_script #'
  4. echo '# Dennis Buchhorn - bucde@b-eit.de #'
  5. echo '####################################################################'
  6. echo '# WARNING: password is clear text! #'
  7. #echo '# #'
  8. echo '####################################################################'
  9. echo ''
  10. POSTGRES_CONTAINER_NAME=""
  11. POSTGRES_ADMIN_USER=''
  12. POSTGRES_CUSTOMER_NAME=''
  13. POSTGRES_CUSTOMER_PASSWORD=''
  14. read -p "Enter postgres container name: " POSTGRES_CONTAINER_NAME
  15. read -p 'Enter postgres admin user name: ' POSTGRES_ADMIN_USER
  16. read -p 'Enter customer name: ' POSTGRES_CUSTOMER_NAME
  17. read -p 'Enter customer password: ' POSTGRES_CUSTOMER_PASSWORD
  18. POSTGRES_CUSTOMER_DBNAME="${POSTGRES_CUSTOMER_NAME}db"
  19. rm -f tmp
  20. touch tmp
  21. echo "CREATE ROLE "$POSTGRES_CUSTOMER_DBNAME" NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT NOLOGIN;" >> tmp
  22. echo "CREATE ROLE "$POSTGRES_CUSTOMER_NAME" NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN ENCRYPTED PASSWORD '"$POSTGRES_CUSTOMER_PASSWORD"';" >> tmp
  23. echo "GRANT "$POSTGRES_CUSTOMER_DBNAME" TO "$POSTGRES_CUSTOMER_NAME";" >> tmp
  24. echo "CREATE DATABASE "$POSTGRES_CUSTOMER_DBNAME" WITH OWNER="$POSTGRES_CUSTOMER_NAME";" >> tmp
  25. echo "REVOKE ALL ON DATABASE "$POSTGRES_CUSTOMER_DBNAME" FROM public;" >> tmp
  26. cat tmp | docker exec -i $POSTGRES_CONTAINER_NAME psql -U $POSTGRES_ADMIN_USER -d template1
  27. rm -f tmp
  28. touch tmp
  29. echo "GRANT ALL ON SCHEMA public TO "$POSTGRES_CUSTOMER_NAME" WITH GRANT OPTION;" >> tmp
  30. cat tmp | docker exec -i $POSTGRES_CONTAINER_NAME psql -U $POSTGRES_ADMIN_USER -d $POSTGRES_CUSTOMER_DBNAME
  31. rm -f tmp
  32. echo "Database '"$POSTGRES_CUSTOMER_DBNAME"' with user '"$POSTGRES_CUSTOMER_NAME"' created."
  33. echo 'Done!'