Сегодня утром обратился ко мне коллега с просьбой рассказать, почему его учетку блокирует. Ситуация в принципе штатная. Т.е. в свое время, безконтрольно плодятся скрипты с забитыми в них паролями, а при плановой смене паролей эти скрипты начинают блокировать учетку, т.к. пароли в них сменить забывают. Я давно уже включил аудит, поэтому задача была просто решаема. Итак:
Цитата: select name,value from v$parameter where name like 'audit%';
проверяем, что audit_trail=DB, это общее включение аудита. Теперь необходимо включить конкретно на что нужен аудит. У меня немного посложнее условия, но в общем случае хватит
Код:
audit create session;
т.е. записывать все подключения, удачные и неудачные. Общий формат записи команды
Цитата: audit {statement_option|privilege_option}
[by user] [by {session|access}] [ whenever {successful|unsuccessful}]
можете поэкспериментировать.
Все. Ведется аудит подключений. Ваша задача - периодически чистить aud$ и в необходимых случаях проверять ее содержимое. Для поиска долбящихся скриптов, например, я использовал запрос
Код:
select count(*),username,os_username,userhost,terminal,trunc(timestamp)
from dba_audit_session
where returncode<>0
group by username,os_username,userhost,terminal,trunc(timestamp)
order by 6 desc;
который выводит суммарное количество неуспешных подключений, пользователя, под которого идет перебор паролей и данные о машине, с которой идет подключение. Для удобства оценки из даты выбрасывается время, т.е. группируются подключения за сутки.