generando usuarios fácilmente en informix

Cada uno hace lo que puede para facilitar la creación de usuarios, y el mantenimiento de los mismos.

En esta oportunidad, les traigo un script bastante pavote, que apunta a ‘copiar’ los permisos de un usuario existente en uno nuevo, de manera fácil y automatizada:

#!/bin/sh
. /etc/informix #cambiar por el entorno de cada uno!

TEMPLATE_USER=$1
until [ $TEMPLATE_USER ]
do
 echo "User de ejemplo: "
 read TEMPLATE_USER
done
NEW_USER=$2
until [ $NEW_USER ]
do
 echo "User a crear: "
 read NEW_USER
done

PROGNAME=`basename $0`
DBS_LIST_FILE=/tmp/${PROGNAME}.unl
REPORT_FILE=/tmp/${PROGNAME}.rpt

echo "" > $REPORT_FILE

dbaccess sysmaster 1>/dev/null <<EOSQL
-------------------------------------------------------
-- todas las bases de datos, menos las de sistema
-------------------------------------------------------
unload to ${DBS_LIST_FILE} delimiter ' '
select name from sysdatabases
where name not like 'sys%'
EOSQL

for dbsname in `cat ${DBS_LIST_FILE}`; do
  dbschema -q -ss -d ${dbsname} -p $TEMPLATE_USER ${dbsname}.sql > /dev/null
  LINEAS=`sort -u ${dbsname}.sql|wc -l`
  if [ $LINEAS -gt 1 ]; then
    echo 'database '${dbsname}';' >> $REPORT_FILE
    sort -u ${dbsname}.sql >> $REPORT_FILE
  fi
  rm ${dbsname}.sql
done

rm $DBS_LIST_FILE

sed '1,$s/'${TEMPLATE_USER}'/'${NEW_USER}'/g' $REPORT_FILE > /tmp/mi_temporal && mv /tmp/mi_temporal $REPORT_FILE

dbaccess < $REPORT_FILE

rm $REPORT_FILE

Leave a Reply