Печать
Категория: Вопросы и ответы Oracle
Просмотров: 17262

Посмотреть когда у пользователя последний раз менялся пароль можно следующими способами:

  1. Если аудит включен, то можно обратиться к представлению dba_audit_trail, и вытащить из него запись о последнем удачном выполнении команды ALTER USER для данного пользователя:

    SELECT MAX(timestamp)
      FROM dba_audit_trail
     WHERE action_name = 'ALTER USER' AND obj_name = 'USER1'
           AND returncode = 0
    

    Недостатком этого способа является то, что под командой ALTER USER может скрываться не только изменение пароля пользователя, но и, к примеру, изменение у него табличного пространства по умолчанию. К достоинству этого способа можно отнести то, что можно посмотреть историю изменения пароля пользователя.

  2. Обратиться к системным представлениям KU$_PSW_HIST_LIST_VIEW или EXU8PHS:

    SELECT MAX(password_date)
      FROM sys.ku$_psw_hist_list_view
     WHERE uname = 'USER1'
    

    Представления базируются на таблицах USER_HISTORY$ и USER$ словаря и отображают историю свёрток (хэшей) паролей пользователей. Недостатком этого способа является то, что он применим только для пользователей, которым назначен профиль с установленным параметром PASSWORD_REUSE_TIME. Как и в предыдущем способе, здесь так же можно при желании вывести историю изменения паролей.

  3. Обратиться к системной таблице словаря USER$:

    SELECT ptime FROM sys.user$ WHERE name = 'USER1'
    

    Поле ptime покажет дату, и время когда пароль пользователя был изменён.