1. Создание функции
su - oracle
$export ORACLE_SID=
$export NLS_LANG=AMRICAN_AMERICA.CL8MSWIN1251
SQL>@$ORACLE_HOME/rdbms/admin/testdb_utlpwdmg.sql;
/u01/app/oradb/product/11.2.0.3/dbhome_1/rdbms/admin/utlpwdmg.sql
2. Изменяем профиль DEFAULT
включить функцию:
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION testdb_verify_function;
отключить функцию:
alter profile default limit password_verify_function NULL;
3. Все другие профили унаследуют эту функцию от профиля DEFAULT
если у них параметр PASSWORD_VERIFY_FUNCTION установлен в DEFAULT
ALTER PROFILE NAME_PROFILE LIMIT PASSWORD_VERIFY_FUNCTION DEFAULT;
4. Сменить у пользователя профиль по умолчанию можно так:
alter user dba_angor profile unlimited_profile;
Стандартная функция
1. Пароль совпадает с именем пользователя.
2. Длина пароля меньше 4-х символов.
3. Пароль слишком простой (совпвдвет со стандартными словами : welcome, database, oracle и т.д.)
4. Не содержит ни одной цифры. (0123456789)
5. Не содержит ни одной буквы. (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)
6. Не содержит ни одного спецсимвола. (!"#$%&()``*+,-/:;<=>?_)
7. Пароль не отличается от предыдущего на 3 символа.
Профиль такой :
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 60 //Количество дней до истечения срока действия пароля.
PASSWORD_GRACE_TIME 10 //Количество дней, в течении которых предупреждается о необходимости смены пароля.
PASSWORD_REUSE_TIME 1800 //Количество дней по истечении которого можно повторно использовать пароль.
PASSWORD_REUSE_MAX UNLIMITED //Количество раз повторного использования пароля.
FAILED_LOGIN_ATTEMPTS 3 //Количество неудачных попыток входа, прежде чем заблокировать уч. запись.
PASSWORD_LOCK_TIME 1/1440 //Количество дней на которое блокируется учетная запись.
PASSWORD_VERIFY_FUNCTION verify_function;
Функция проверки пароля для TESTDB
1. Пароль совпадает с именем пользователя.
2. Длина пароля меньше 8-х символов.
3. Пароль слишком простой (совпвдвет со стандартными словами : welcome, database, oracle и т.д.)
4. Не содержит ни одной цифры. (0123456789)
5. Не содержит ни одной буквы. (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)
6. Пароль не отличается от предыдущего на 1 символ.
Профиль такой :
alter PROFILE "DEFAULT" LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
IDLE_TIME UNLIMITED
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
COMPOSITE_LIMIT UNLIMITED
PRIVATE_SGA UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED //Количество дней до истечения срока действия пароля.
PASSWORD_GRACE_TIME UNLIMITED //Количество дней, в течении которых предупреждается о необходимости смены пароля.
PASSWORD_REUSE_TIME 1/24/60 //Количество дней по истечении которого можно повторно использовать пароль.
PASSWORD_REUSE_MAX 5 //Количество раз повторного использования пароля.
FAILED_LOGIN_ATTEMPTS 5 //Количество неудачных попыток входа, прежде чем заблокировать уч. запись.
PASSWORD_LOCK_TIME 1/24/60*3 //Количество дней на которое блокируется учетная запись.
PASSWORD_VERIFY_FUNCTION testdb_verify_function;
Повторно пароль можно использовать по истечении времени PASSWORD_REUSE_TIME
но при этом параметр PASSWORD_REUSE_MAX не должен иметь значение UNLIMITED
должна быть реальная цифра. Описано в документе [ID 228991.1]
FAILED_LOGIN_ATTEMPTS – определяет количество неудачных попыток входа, прежде чем заблокировать учетную запись. Если указан верный пароль до окончания количества попыток, то счетчик сбрасывается на ноль.
PASSWORD_LOCK_TIME – количество дней, на которое блокируется учетная запись, при превышении количества неудачных попыток регистрации, определяемых параметром FAILED_LOGIN_ATTEMPTS
PASSWORD_LIFE_TIME – количество дней до истечения срока действия пароля
PASSWORD_GRACE_TIME – количество дней до истечения срока действия пароля, когда будет напоминаться о необходимости его смены. В это время старый пароль действует
PASSWORD_REUSE_TIME – количество дней, по истечение которого можно повторно использовать пароль
PASSWORD_REUSE_MAX – количество раз повторного использования пароля
PASSWORD_VERIFY_FUNCTION – имя функции для проверки пароля на соответствие требованиям. Вызывается при смене пароля пользователем
SESSIONS_PER_USER – количество сеансов на одного пользователя (количество входов в системы под одним логином). При превышении установленного количества сеанс блокируется
CPU_PER_SESSION – процессорное время отводимое серверному процессу сеанса, прежде чем сеанс будет завершен
CPU_PER_CALL – Процессорное время отводимое на каждое SQL предложение, прежде чем выполнение будет прервано
LOGICAL_READS_PER_SESSION - количество блоков прочитываемых за сеанс
LOGICAL_READS_PER_CALL – количество блоков, которые могут быть прочитаны одиночным предложением
PRIVATE_SGA – Для сеансов подключенных по распределенной архитектуре, указывает количество килобайт которые выделяются сеансу
CONNECT_TIME -время подключения, задается в минутах. Определяет длительность подключения к базе данных. По истечении сеанс принудительно завершается
IDLE_TIME – время простоя, задается в минутах. По истечении этого времени простаивающий сеанс будет принудительно завершен
COMPOSITE_LIMIT – Взвешенная сумма CPU_PER_SESSION, CONNECT_TIME, OGICAL_READS_PER_SESSION и PRIVATE_SGA. Это продвинутое средство настройки, которое требует специальной подготовки
При превышении ограничения на ресурсы сеанс принудительно завершается, транзакция находящаяся в процессе исполнения откатывается.
su - oracle
$export ORACLE_SID=
$export NLS_LANG=AMRICAN_AMERICA.CL8MSWIN1251
SQL>@$ORACLE_HOME/rdbms/admin/testdb_utlpwdmg.sql;
/u01/app/oradb/product/11.2.0.3/dbhome_1/rdbms/admin/utlpwdmg.sql
2. Изменяем профиль DEFAULT
включить функцию:
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION testdb_verify_function;
отключить функцию:
alter profile default limit password_verify_function NULL;
3. Все другие профили унаследуют эту функцию от профиля DEFAULT
если у них параметр PASSWORD_VERIFY_FUNCTION установлен в DEFAULT
ALTER PROFILE NAME_PROFILE LIMIT PASSWORD_VERIFY_FUNCTION DEFAULT;
4. Сменить у пользователя профиль по умолчанию можно так:
alter user dba_angor profile unlimited_profile;
1. Пароль совпадает с именем пользователя.
2. Длина пароля меньше 4-х символов.
3. Пароль слишком простой (совпвдвет со стандартными словами : welcome, database, oracle и т.д.)
4. Не содержит ни одной цифры. (0123456789)
5. Не содержит ни одной буквы. (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)
6. Не содержит ни одного спецсимвола. (!"#$%&()``*+,-/:;<=>?_)
7. Пароль не отличается от предыдущего на 3 символа.
Профиль такой :
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 60 //Количество дней до истечения срока действия пароля.
PASSWORD_GRACE_TIME 10 //Количество дней, в течении которых предупреждается о необходимости смены пароля.
PASSWORD_REUSE_TIME 1800 //Количество дней по истечении которого можно повторно использовать пароль.
PASSWORD_REUSE_MAX UNLIMITED //Количество раз повторного использования пароля.
FAILED_LOGIN_ATTEMPTS 3 //Количество неудачных попыток входа, прежде чем заблокировать уч. запись.
PASSWORD_LOCK_TIME 1/1440 //Количество дней на которое блокируется учетная запись.
PASSWORD_VERIFY_FUNCTION verify_function;
Функция проверки пароля для TESTDB
1. Пароль совпадает с именем пользователя.
2. Длина пароля меньше 8-х символов.
3. Пароль слишком простой (совпвдвет со стандартными словами : welcome, database, oracle и т.д.)
4. Не содержит ни одной цифры. (0123456789)
5. Не содержит ни одной буквы. (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)
6. Пароль не отличается от предыдущего на 1 символ.
Профиль такой :
alter PROFILE "DEFAULT" LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
IDLE_TIME UNLIMITED
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
COMPOSITE_LIMIT UNLIMITED
PRIVATE_SGA UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED //Количество дней до истечения срока действия пароля.
PASSWORD_GRACE_TIME UNLIMITED //Количество дней, в течении которых предупреждается о необходимости смены пароля.
PASSWORD_REUSE_TIME 1/24/60 //Количество дней по истечении которого можно повторно использовать пароль.
PASSWORD_REUSE_MAX 5 //Количество раз повторного использования пароля.
FAILED_LOGIN_ATTEMPTS 5 //Количество неудачных попыток входа, прежде чем заблокировать уч. запись.
PASSWORD_LOCK_TIME 1/24/60*3 //Количество дней на которое блокируется учетная запись.
PASSWORD_VERIFY_FUNCTION testdb_verify_function;
Повторно пароль можно использовать по истечении времени PASSWORD_REUSE_TIME
но при этом параметр PASSWORD_REUSE_MAX не должен иметь значение UNLIMITED
должна быть реальная цифра. Описано в документе [ID 228991.1]
FAILED_LOGIN_ATTEMPTS – определяет количество неудачных попыток входа, прежде чем заблокировать учетную запись. Если указан верный пароль до окончания количества попыток, то счетчик сбрасывается на ноль.
PASSWORD_LOCK_TIME – количество дней, на которое блокируется учетная запись, при превышении количества неудачных попыток регистрации, определяемых параметром FAILED_LOGIN_ATTEMPTS
PASSWORD_LIFE_TIME – количество дней до истечения срока действия пароля
PASSWORD_GRACE_TIME – количество дней до истечения срока действия пароля, когда будет напоминаться о необходимости его смены. В это время старый пароль действует
PASSWORD_REUSE_TIME – количество дней, по истечение которого можно повторно использовать пароль
PASSWORD_REUSE_MAX – количество раз повторного использования пароля
PASSWORD_VERIFY_FUNCTION – имя функции для проверки пароля на соответствие требованиям. Вызывается при смене пароля пользователем
SESSIONS_PER_USER – количество сеансов на одного пользователя (количество входов в системы под одним логином). При превышении установленного количества сеанс блокируется
CPU_PER_SESSION – процессорное время отводимое серверному процессу сеанса, прежде чем сеанс будет завершен
CPU_PER_CALL – Процессорное время отводимое на каждое SQL предложение, прежде чем выполнение будет прервано
LOGICAL_READS_PER_SESSION - количество блоков прочитываемых за сеанс
LOGICAL_READS_PER_CALL – количество блоков, которые могут быть прочитаны одиночным предложением
PRIVATE_SGA – Для сеансов подключенных по распределенной архитектуре, указывает количество килобайт которые выделяются сеансу
CONNECT_TIME -время подключения, задается в минутах. Определяет длительность подключения к базе данных. По истечении сеанс принудительно завершается
IDLE_TIME – время простоя, задается в минутах. По истечении этого времени простаивающий сеанс будет принудительно завершен
COMPOSITE_LIMIT – Взвешенная сумма CPU_PER_SESSION, CONNECT_TIME, OGICAL_READS_PER_SESSION и PRIVATE_SGA. Это продвинутое средство настройки, которое требует специальной подготовки
При превышении ограничения на ресурсы сеанс принудительно завершается, транзакция находящаяся в процессе исполнения откатывается.