Bash – Extraire les GRANT MySQL d’un fichier datasource d’OC4J

Programmation

Vous avez une idée ? Trouvez gratuitement des développeurs sur Codeur.com !

Recevez des devis (gratuit)

Ce script bash permet de récupérer à partir d’un fichier datasource d’OC4J, les grant a effectuer sur une base MySQL pour en donner l’accès. Il génère un script SQL (GRANT.sql) qui peut être ensuite executé directement sur votre serveur de base de données. Il peut être facilement adapter à postgres ou oracle. Il suffit de changer la manière dont il coupe et cherche la chaîne de connexion. Si vous avez la moindre question, n’hésitez pas à laisser un commentaire.

[bash]

#!/bin/bash
user=""
passwd=""
database=""
host="votre_serveur"
for line in $(cat data-sources.xml.sav); do
echo user=${user}, passwd=${passwd}, database=${database}
if [[ ${#user} -ne 0 && ${#passwd} -ne 0 && ${#database} -ne 0  ]] then
echo "GRANT ALL PRIVILEGES ON $database.* TO ‘$user’@’$host’ IDENTIFIED BY ‘$passwd’;" >> GRANT.sql
user="";
passwd="";
database="";
fi
if echo ${line} | grep "<data-source" > /dev/null;    then
user="";
passwd="";
database="";

echo "changement de datasource => reinitialisation"
fi
if echo ${line} | grep username > /dev/null;    then
user=`echo ${line} | cut -d "\"" -f 2-2`
echo $user
elif echo ${line} | grep password > /dev/null;  then
passwd=`echo ${line} | cut -d "\"" -f 2-2`
echo $passwd
elif echo ${line} | grep url=\"jdbc:mysql > /dev/null; then
database=`echo ${line} | cut -d "?" -f -1 | cut -d "/" -f 4-`
echo $database
fi
done
echo FLUSH PRIVILEGES >> GRANT.sql

[/bash]
L'équipe de WebActus.net vous propose tous les jours des articles sur l'univers des startups, du e-commerce et du growth hacking.
  • p… Si je suis calé dans certains domaines, c’est là que je vois que du côté DB et MySQL, j’ai encore BEAUCOUP à apprendre !
    :p)

Rejoignez la communauté Webactus

Recevez régulièrement les meilleures actus et ressources

Pas de spam, vous pouvez vous désabonner à tous moment.