Изменение характеристик пароля
Спецификация
<изменение характеристик пароля>::=
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 'TEST1';

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

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

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

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

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