create_database.sh: supports creatuing user with access from outside.

This commit is contained in:
Christoph 2018-12-05 15:37:02 +01:00
parent 435fbfdf19
commit a397141904

View File

@ -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..)"