[ОТВЕТИТЬ]
26.08.2011 10:56  
OlegON
Сегодня утром обратился ко мне коллега с просьбой рассказать, почему его учетку блокирует. Ситуация в принципе штатная. Т.е. в свое время, безконтрольно плодятся скрипты с забитыми в них паролями, а при плановой смене паролей эти скрипты начинают блокировать учетку, т.к. пароли в них сменить забывают. Я давно уже включил аудит, поэтому задача была просто решаема. Итак:
:
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;
который выводит суммарное количество неуспешных подключений, пользователя, под которого идет перебор паролей и данные о машине, с которой идет подключение. Для удобства оценки из даты выбрасывается время, т.е. группируются подключения за сутки.
 
"Спасибо" OlegON от:
26.08.2011 11:29  
OlegON
Для очистки записей двухнедельной давности джобчик...
:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'clean_aud',
job_type => 'PLSQL_BLOCK',
job_action => 'begin execute immediate ''delete from aud$ where ntimestamp#<cast(sysdate-14 as timestamp)'';commit; end;',
repeat_interval => 'freq=daily;byhour=22;byminute=30;bysecond=0',
enabled => TRUE
);
END;
/
 
 




- - RSS - - Карта - 👫 Яндекс.Метрика