diff --git a/create_database.sh b/create_database.sh index 8e23487..51d54b9 100755 --- a/create_database.sh +++ b/create_database.sh @@ -350,6 +350,23 @@ if ! $NON_INTERACTIVE_MODE ; then fi fi + echo "" + echo -e "\033[32m--\033[m" + echo "" + echo " Access from outside?" + echo "" + echo " Give a blank seoarated list of IP-Addresses." + echo "" + echo " Leave empty to deny access from outside." + echo "" + echononl "List of IP Addresses: " + read IP_ADDRESSES + if [[ -n "$IP_ADDRESSES" ]] ; then + ACCESS_FROM_OUTSIDE=true + else + ACCESS_FROM_OUTSIDE=false + fi + fi if ! $QUIET_MODE ; then @@ -363,6 +380,12 @@ if ! $QUIET_MODE ; then echo " Database user................: $DATABASE_USER" echo " Database password............: $DATABASE_PASSWD" echo "" + if $ACCESS_FROM_OUTSIDE ; then + echo " Access from outside..........: $IP_ADDRESSES" + else + echo -e " Access from outside..........: \033[33m\033[1m- denied -\033[m" + fi + echo "" echo "" fi @@ -407,16 +430,6 @@ declare -i MINOR_VERSION="${version_arr[1]}" _path_level="${version_arr[2]}" declare -i PATCH_LEVEL="${_path_level%%-*}" -if ! $QUIET_MODE ; then - if [[ $MAJOR_VERSION -gt 8 ]] \ - || ( [[ $MAJOR_VERSION -eq 8 ]] && [[ $MINOR_VERSION -gt 0 ]] ) \ - || ( [[ $MAJOR_VERSION -eq 8 ]] && [[ $MINOR_VERSION -eq 0 ]] && [[ $PATCH_LEVEL -ge 3 ]] ) ; then - - info "Using (old) Password Plugin 'mysql_native_password'" - else - echo "" - fi -fi # - Test if Database already exists @@ -440,7 +453,19 @@ if [[ $MAJOR_VERSION -gt 8 ]] \ || ( [[ $MAJOR_VERSION -eq 8 ]] && [[ $MINOR_VERSION -gt 0 ]] ) \ || ( [[ $MAJOR_VERSION -eq 8 ]] && [[ $MINOR_VERSION -eq 0 ]] && [[ $PATCH_LEVEL -ge 3 ]] ) ; then - echononl " Create database user '$DATABASE_USER'" + # - Use (password) plugin mysql_native_password + # - + if ! $QUIET_MODE ; then + if [[ $MAJOR_VERSION -gt 8 ]] \ + || ( [[ $MAJOR_VERSION -eq 8 ]] && [[ $MINOR_VERSION -gt 0 ]] ) \ + || ( [[ $MAJOR_VERSION -eq 8 ]] && [[ $MINOR_VERSION -eq 0 ]] && [[ $PATCH_LEVEL -ge 3 ]] ) ; then + info "Using (old) Password Plugin 'mysql_native_password'" + else + echo "" + fi + fi + + echononl " Create database user '$DATABASE_USER' access from locahost" mysql $MYSQL_CREDENTIAL_ARGS -N -s -e \ "CREATE USER '$DATABASE_USER'@'localhost' IDENTIFIED WITH mysql_native_password BY '$DATABASE_PASSWD'" \ > $tmp_log_file 2>&1 @@ -451,6 +476,59 @@ if [[ $MAJOR_VERSION -gt 8 ]] \ echo_ok fi + if $ACCESS_FROM_OUTSIDE ; then + + for _ip in $IP_ADDRESSES ; do + + echononl " Create database user '$DATABASE_USER' access from 192.168.3.122 " + mysql $MYSQL_CREDENTIAL_ARGS -N -s -e \ + "CREATE USER '$DATABASE_USER'@'192.168.3.122' IDENTIFIED WITH mysql_native_password BY '$DATABASE_PASSWD'" \ + > $tmp_log_file 2>&1 + if [[ $? -ne 0 ]] ; then + echo_failed + error "$(cat $tmp_log_file)" + else + echo_ok + fi + + done + fi + + +# # - Use default (password plugin) - at time: caching_sha2_password +# # - +# if ! $QUIET_MODE ; then +# if [[ $MAJOR_VERSION -gt 8 ]] \ +# || ( [[ $MAJOR_VERSION -eq 8 ]] && [[ $MINOR_VERSION -gt 0 ]] ) \ +# || ( [[ $MAJOR_VERSION -eq 8 ]] && [[ $MINOR_VERSION -eq 0 ]] && [[ $PATCH_LEVEL -ge 3 ]] ) ; then +# info "Using default Password Plugin" +# else +# echo "" +# fi +# fi +# +# echononl " Create database user '$DATABASE_USER'@'localhost'.." +# mysql $MYSQL_CREDENTIAL_ARGS -N -s -e \ +# "CREATE USER '$DATABASE_USER'@'localhost' IDENTIFIED BY '$DATABASE_PASSWD'" \ +# > $tmp_log_file 2>&1 +# if [[ $? -ne 0 ]] ; then +# echo_failed +# error "$(cat $tmp_log_file)" +# else +# echo_ok +# fi +# +# echononl " Create database user '$DATABASE_USER'@'192.168.3.122'.." +# mysql $MYSQL_CREDENTIAL_ARGS -N -s -e \ +# "CREATE USER '$DATABASE_USER'@'192.168.3.122' IDENTIFIED BY '$DATABASE_PASSWD'" \ +# > $tmp_log_file 2>&1 +# if [[ $? -ne 0 ]] ; then +# echo_failed +# error "$(cat $tmp_log_file)" +# else +# echo_ok +# fi + echononl " Grant full access to user '$DATABASE_USER' on Database '$DATABASE_NAME'" mysql $MYSQL_CREDENTIAL_ARGS -N -s -e \ "GRANT ALL ON ${DATABASE_NAME}.* TO '$DATABASE_USER'@'localhost'" > $tmp_log_file 2>&1 @@ -461,6 +539,24 @@ if [[ $MAJOR_VERSION -gt 8 ]] \ echo_ok fi + if $ACCESS_FROM_OUTSIDE ; then + + for _ip in $IP_ADDRESSES ; do + + echononl " Grant full access to user '$DATABASE_USER' on Database '$DATABASE_NAME' from '192.168.3.122'" + mysql $MYSQL_CREDENTIAL_ARGS -N -s -e \ + "GRANT ALL ON ${DATABASE_NAME}.* TO '$DATABASE_USER'@'192.168.3.122'" > $tmp_log_file 2>&1 + if [[ $? -ne 0 ]] ; then + echo_failed + error "$(cat $tmp_log_file)" + else + echo_ok + fi + + done + + fi + else echononl " Grant usage to user '$DATABASE_USER' (Creates User..)"