Изменение характеристик пароля
Спецификация
< изменение характеристик пароля >::=
ALTER USER [имя пользователя]
PASSWORD {LENGTH {MIN длина пароля | UNLIMITED}
| LIFE {TIME количество дней | UNLIMITED}}
< длина пароля >::=
целое положительное число
< количество дней >::=
целое положительное число

Примечание

Все действия, связанные с измененнием параметров пароля и срока его действия, должны быть согласованы с пользователем, либо администратор БД должен уведомить пользователя о произведенных им изменениях.

Синтаксические правила
  1. Опция PASSWORD LENGTH UNLIMITED разрешает использовать пароль любой длины в диапазоне от 0 (т.е. без пароля) до 18.

    Примечание

    При нулевой длине пароля доступ пользователя к БД выполняется без аутентификации (см. пункт «Создание пользователя»).

  2. Опция PASSWORD LENGTH MIN устанавливает минимальную длину пароля пользователя (от 0 до 18).

    Изменение длины пароля пользователя, подавшего эту команду:
    alter user password length min 6;
  3. Текущую длину пароля пользователя команда опция PASSWORD LENGTH MIN не проверяет, она влияет только на выполнение последующих команд CREATE USER, ALTER USER или GRANT с ключевым словом IDENTIFIED.

  4. Опция PASSWORD LIFE TIME < количество дней > устанавливает длительность действия пароля. < Количество дней > задает время действия пароля (в днях) с момента выполнения данной команды.

    alter user user1 password life time 30;
  5. Значение < количество дней > должно быть в диапазоне от 0 до 65534.

  6. Длительность действия пароля проверяется только в процессе аутентификации пользователя. Это означает, что текущая сессия пользователя после истечения срока действия пароля прервана не будет и может продолжаться сколь угодно долго.

  7. Если обозначена опция PASSWORD LIFE TIME < количество дней >, то заданное значение прибавляется к текущей дате. Полученная дата ограничивает срок действия пароля. Попытка пользователя получить доступ к БД в текущем сеансе после истечения срока действия пароля будет заблокирована – на любую команду, кроме ALTER USER, пользователь будет получать код завершения 1022 («Нарушение привилегий»). После смены пароля по команде ALTER USER доступ пользователя к БД будет возобновлен вплоть до истечения следующего интервала времени действия пароля.

  8. Доступ пользователя к БД после окончания срока действия пароля может быть восстановлен в том случае, если администратор БД подаст команду на смену пароля пользователя при помощи оператора GRANT, например:

    grant dba to TEST identified by '12345678';

    или если администратор БД (SYSTEM) отменит ограничение на время действия пароля с помощью оператора

    alter user < имя пользователя > password life unlimited;
  9. Опция PASSWORD LIFE UNLIMITED отменяет ранее установленный срок действия пароля.

Пример
Выполняем блок запросов:
drop user TEST cascade;
create user TEST identified by '12345678';
grant dba to TEST;
alter user TEST password life time 1;
username TEST/12345678
! таблица может быть создана
create or replace table test(i int);

Затем средствами ОС переводим системное время на сутки вперед и выполняем блок запросов, в котором первый оператор create table должен быть заблокирован (код завершения 1022 «Нарушение привилегий»), а второй – отработать корректно:
! создать таблицу нельзя – истек срок действия пароля
username TEST/12345678
create or replace table test(i int);

username SYSTEM/MANAGER8
! дать пользователю TEST привилегию DBA и установить новый пароль
grant dba to TEST identified by '123456781';
username TEST/123456781
! таблица может быть создана
create or replace table test(i int);