Script eseguibile per assegnare ad uno specifico database mysql un utente dato in input
L’host è % in quanto c’è la necessità di accedere al db da remoto.
#!/bin/bash
MYSQL_TARGET_USER="$1"
MYSQL_TARGET_HOST="%"
DB_NAME="SPECIFICODATABASE"
MYSQL_ROOT_USER="root"
MYSQL_ROOT_HOST="127.0.0.1"
MYSQL_ROOT_PASSWORD="PASSWORDROOTMYSQL"
if [ -z "$MYSQL_TARGET_USER" ]; then
echo "Uso: $0 nome_utente_mysql"
exit 1
fi
echo "Concedo accesso SELECT a ${MYSQL_TARGET_USER}@${MYSQL_TARGET_HOST} su ${DB_NAME}..."
if mysql -h "${MYSQL_ROOT_HOST}" -u "${MYSQL_ROOT_USER}" -p"${MYSQL_ROOT_PASSWORD}" <<EOF
GRANT SELECT ON \`${DB_NAME}\`.* TO '${MYSQL_TARGET_USER}'@'${MYSQL_TARGET_HOST}';
FLUSH PRIVILEGES;
EOF
then
echo "Operazione completata ✅"
else
echo "Errore ❌"
exit 1
fi
