Попал тут на массовое заведение пользователей скрипт работает на Linux и с небольшими изменениями на AIX (профиль другой и oraenv отсутствует).
Суть скрипта - спрашивает имя пользователя, потом, пока пустую строку не отдашь - роли, которые пользователю назначаются. В итоге выдает шаблончик для передачи пользователю.
Скрипт можно так же использовать и для добавления ролей (строка создания просто будет с ошибкой)
Код:
#!/bin/bash
. /home/oracle/.bash_profile
ORACLE_SID=БАЗА
ORAENV_ASK=NO
. oraenv >/dev/null
export NLS_LANG=AMERICAN_AMERICA.UTF8
echo $ORACLE_SID
read -p "Username : " USERN
USERN=$(echo $USERN | tr '[:lower:]' '[:upper:]')
echo "Existing users with username $USERN"
sqlplus -S /nolog <<EOF
connect / as sysdba
set head off
set pages 0
set linesize 1000
select user_id||' '||username||' '||account_status from dba_users where username='$USERN';
exit
EOF
echo "Press Enter to continue"
read
PASSWD=$(tr -dc 'A-Za-z0-9'</dev/urandom | head -c 22)
sqlplus -S /nolog <<EOF
connect / as sysdba
set head off
set pages 0
set linesize 1000
create user "$USERN" identified by "$PASSWD"
default tablespace USERS_DATA
temporary tablespace TEMPUSERS
profile USR_PROFILE password expire;
grant create session to "$USERN";
exit
EOF
while true; do
read -p "Enter grant " GRANT
if [[ -z $GRANT ]]; then
echo "Grants completed"
break
fi
sqlplus -S /nolog <<EOF
connect / as sysdba
set head off
set pages 0
set linesize 1000
grant $GRANT to "$USERN";
exit
EOF
done
echo "Добрый день,
по Вашей заявке на доступ к базе $ORACLE_SID данные для подключения -> $USERN / $PASSWD
При первом подключении к БД $ORACLE_SID необходимо будет сменить пароль, как это сделать описано здесь:
https://olegon.ru/"