Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Не работает PASSWORD_REUSE_MAX  [new]
Sergey-E
Member

Откуда:
Сообщений: 8
Подскажите пожалуйста, в чем может быть проблема? Устанавливаю PASSWORD_REUSE_MAX = 3, но пользователь не получает возможности восстановить старый пароль ни через 3 последовательных изменения, ни через их большее количество. Использую Oracle 9.
Вот скрипт:

set serveroutput on
def profile_name=TEST_PRF
def user_name=TEST_USR
def initial_pwd=3000
def loops=100
declare
v_count number;
begin
Select count(*) into v_count FROM SYS.DBA_PROFILES WHERE PROFILE = '&profile_name';
if v_count = 0 then
execute immediate 'CREATE PROFILE &profile_name LIMIT PASSWORD_REUSE_MAX 3 PASSWORD_REUSE_TIME UNLIMITED';
else
execute immediate 'ALTER PROFILE &profile_name LIMIT PASSWORD_REUSE_MAX 3 PASSWORD_REUSE_TIME UNLIMITED';
end if;
end;
/

declare
v_count number;
begin
Select count(*) into v_count FROM SYS.DBA_USERS WHERE upper(USERNAME) = '&user_name';
if v_count > 0 then
execute immediate 'ALTER USER &user_name PROFILE DEFAULT';
execute immediate 'ALTER USER &user_name identified by "&initial_pwd"';
execute immediate 'ALTER USER &user_name PROFILE &profile_name';
else
execute immediate 'CREATE USER &user_name PROFILE &profile_name identified by "&initial_pwd"';
end if;
dbms_output.put_line('Начальный пароль "&initial_pwd"');
end;
/

declare
v_counter number := 0;
begin
for i in &initial_pwd + 1 .. &initial_pwd + &loops loop
begin
dbms_output.put_line('Попытка сменить пароль на "&initial_pwd"...');
execute immediate 'ALTER USER &user_name identified by "&initial_pwd"';
dbms_output.put_line('OK');
dbms_output.put_line('Число предыдущих неудачных попыток: '||to_char(v_counter));
return;
exception
when others then
v_counter := v_counter + 1;
dbms_output.put_line(sqlerrm);
end;
begin
dbms_output.put_line('Попытка сменить пароль на "'||to_char(i)||'"...');
execute immediate 'ALTER USER &user_name identified by "'||to_char(i)||'"';
dbms_output.put_line('OK');
exception
when others then
dbms_output.put_line(sqlerrm);
end;
end loop;
end;
/

Строка "execute immediate 'ALTER USER &user_name identified by "&initial_pwd"';" не выполнилась успешно ни разу.
8 май 07, 19:24    [4116345]     Ответить | Цитировать Сообщить модератору
 Re: Не работает PASSWORD_REUSE_MAX  [new]
xymbo
Member

Откуда: Донской --> Москва
Сообщений: 2560
Копи-паст скрипта из sql*plus сюда вместе с выдвваемыми ошибками.
8 май 07, 20:50    [4116490]     Ответить | Цитировать Сообщить модератору
 Re: Не работает PASSWORD_REUSE_MAX  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10043
Sergey-E
Подскажите пожалуйста, в чем может быть проблема?


RTFM:


PASSWORD_REUSE_TIME and PASSWORD_REUSE_MAX
These two parameters must be set in conjunction with each other. PASSWORD_REUSE_TIME specifies the number of days before which a password cannot be reused. PASSWORD_REUSE_MAX specifies the number of password changes required before the current password can be reused. For these parameter to have any effect, you must specify an integer for both of them.

If you specify an integer for both of these parameters, then the user cannot reuse a password until the password has been changed the password the number of times specified for PASSWORD_REUSE_MAX during the number of days specified for PASSWORD_REUSE_TIME.

For example, if you specify PASSWORD_REUSE_TIME to 30 and PASSWORD_REUSE_MAX to 10, then the user can reuse the password after 30 days if the password has already been changed 10 times.

If you specify an integer for either of these parameters and specify UNLIMITED for the other, then the user can never reuse a password.

If you specify DEFAULT for either parameter, then Oracle Database uses the value defined in the DEFAULT profile. By default, all parameters are set to UNLIMITED in the DEFAULT profile. If you have not changed the default setting of UNLIMITED in the DEFAULT profile, then the database treats the value for that parameter as UNLIMITED.

If you set both of these parameters to UNLIMITED, then the database ignores both of them.


SY.
8 май 07, 21:04    [4116524]     Ответить | Цитировать Сообщить модератору
 Re: Не работает PASSWORD_REUSE_MAX  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10043
Also, there is no way to test such script, since minimal PASSWORD_REUSE_TIME is 1 day.

SY.
8 май 07, 21:11    [4116534]     Ответить | Цитировать Сообщить модератору
 Re: Не работает PASSWORD_REUSE_MAX  [new]
Sergey-E
Member

Откуда:
Сообщений: 8
Спасибо.

Странно, но в моей документации (Oracle9i SQL Reference Release 2 (9.2)) написано:

PASSWORD_REUSE_TIME
Specify the number of days before which a password cannot be reused. If you set PASSWORD_REUSE_TIME to an integer value, then you must set PASSWORD_REUSE_MAX to UNLIMITED.

PASSWORD_REUSE_MAX
Specify the number of password changes required before the current password can be reused. If you set PASSWORD_REUSE_MAX to an integer value, then you must set PASSWORD_REUSE_TIME to UNLIMITED.
10 май 07, 10:44    [4119215]     Ответить | Цитировать Сообщить модератору
 Re: Не работает PASSWORD_REUSE_MAX  [new]
Biz©
Member

Откуда: Snezhinsk
Сообщений: 5687
освежать наерна нуно документацию ... я вон для 10.2 никак не могу новую вытащить, тк качаю половину в один день, а на следующий день качок мя посылает, тк "изменился размер" => чот обновляется и довольно часто ...
10 май 07, 11:47    [4119702]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить