Ограничение количества неудачных соединений
Спецификация
::=LOGIN ERROR {LIMIT лимит ошибок | UNLIMITED
| TIMEOUT {NUMBER длительность блокировки
| AFTER количество ошибок}
| NO TIMEOUT}
::=::=::=Синтаксические правила
-
Допустимые значения параметров:
-
< лимит ошибок >: от 1 до 100; -
< длительность блокировки >: от 1 до 100; -
< количество ошибок >: от 2 до 100.
-
Общие правила
-
Конструкция ограничивает попытки несанкционированного доступа к БД (например, злоумышленник под известным ему именем пользователя БД пытается подобрать пароль).
-
Параметры конструкции:
-
< лимит ошибок >задает количество последовательных неудачных попыток соединения с БД, после которых доступ к БД блокируется.alter user TEST login error limit 5;
Чтобы разрешить данному пользователю вновь повторить попытки соединиться с БД, администратор СУБД (или любой пользователь с правами DBA) должен разблокировать доступ к БД с помощью команды:
ALTER USER < пользователь > UNLOCK;
-
UNLIMITED– количество неудачных попыток соединения с БД не ограничено (опция по умолчанию); -
TIMEOUT NUMBER < длительность блокировки >задает количество секунд, в течение которых все попытки соединения с БД после< количества ошибок >будут отвергаться, т.е. удачно соединиться с БД можно будет только по истечении указанного периода времени;alter user guest login error limit 3; username GUEST/111 // неправильный пароль username GUEST/222 // неправильный пароль username GUEST/333 // неправильный пароль username GUEST/'12345678'// правильный пароль, блокировка доступа
-
< количество ошибок >задает количество неудачных последовательных попыток соединения с БД, после которых временно блокируется доступ к БД (если задано значение< длительность блокировки >). При достижении лимита неудачных последовательных попыток соединения с БД в журнал linter.out добавляется сообщение вида:SECURITY WARNING: login "TEST" is locked after 4 unsuccessful login attempts;
-
NO TIMEOUTотменяет установленную< длительность блокировки >.
Примечание
Владелец БД не может быть заблокирован конструкцией
ALTER USER LOGIN ERROR LIMIT, иначе может оказаться, что некоторые действия по администрированию БД выполнить не сможет уже никто и никогда. При необходимости можно воспользоваться временной блокировкой владельца БД поALTER USER LOGIN ERROR TIMEOUT. При успешном соединении владельца БД после ряда неудачных последовательных попыток соединения в журнал linter.out добавляется сообщение вида:SECURITY WARNING: database owner's successful login after many previous unsuccessful logins
-
-
Изменение текущего значения
< лимита ошибок >как в сторону увеличения, так и в сторону уменьшения не сбрасывает (не обнуляет) значение счетчика неудачных попыток доступа к БД.Например, была выполнена команда LOGIN ERROR LIMIT 10. После 5 последовательных неудачных попыток была выполнена команда LOGIN ERROR LIMIT 2. Поскольку до этого уже было 5 неудачных попыток, то следующая неудачная попытка доступа приведет к блокировке пользователя.