Как избавиться от сообщения ORA-28002, срок действия пароля истекает в течение 6 дней?


18

У меня есть пользователь, получающий ORA-28002, указывающий, что срок действия пароля истечет в течение шести дней. Я запустил следующее:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 

Но когда я пытаюсь войти в систему как пользователь, сообщение все еще там. Выполнение этого:

select * from dba_profiles where RESOURCE_NAME LIKE 'PASSWORD_LIFE_TIME';

показывает, что значения действительно были изменены на UNLIMITED.

Ответы:


17

Пароль был помечен как «EXPIRED» или помечен как «EXPIRY_DATE» в dba_users. Вам придется изменить это. Вы можете установить его обратно на тот же пароль. Самый простой способ - установить пароль «по значениям». Обычно это обходит проверку истории.

12:28:33 SQL> select * from dba_users where username = 'MYUSER1';

USERNAME                          USER_ID PASSWORD
------------------------------ ---------- ------------------------------
ACCOUNT_STATUS                   LOCK_DATE          EXPIRY_DATE
-------------------------------- ------------------ ------------------
DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE           CREATED
------------------------------ ------------------------------ ------------------
PROFILE                        INITIAL_RSRC_CONSUMER_GROUP
------------------------------ ------------------------------
EXTERNAL_NAME
--------------------------------------------------------------------------------
MYUSER1                               338 66856982BE5CD23F
OPEN
USERS                          TEMP                           17-JAN-11
DEFAULT                        DEFAULT_CONSUMER_GROUP



Elapsed: 00:00:00.03
12:28:43 SQL> alter user myuser1 password expire;

User altered.

Elapsed: 00:00:00.00
12:29:11 SQL> select * from dba_users where username = 'MYUSER1';

USERNAME                          USER_ID PASSWORD
------------------------------ ---------- ------------------------------
ACCOUNT_STATUS                   LOCK_DATE          EXPIRY_DATE
-------------------------------- ------------------ ------------------
DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE           CREATED
------------------------------ ------------------------------ ------------------
PROFILE                        INITIAL_RSRC_CONSUMER_GROUP
------------------------------ ------------------------------
EXTERNAL_NAME
--------------------------------------------------------------------------------
MYUSER1                               338 66856982BE5CD23F
EXPIRED                                             17-JAN-11
USERS                          TEMP                           17-JAN-11
DEFAULT                        DEFAULT_CONSUMER_GROUP



Elapsed: 00:00:00.03
12:29:14 SQL>

Формат этого: «изменить пользователя USER, идентифицированного значениями 'hash from dba_users.password';"

[TEST] C:\>sqlplus system

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jan 17 12:18:16 2011

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Enter password:

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

new: showmode BOTH
12:18:17 SQL> prompt end of LOGIN.SQL
end of LOGIN.SQL
12:18:17 SQL> create user myuser1 identified by mypassword1;

User created.

Elapsed: 00:00:00.01
12:18:21 SQL> grant connect, resource to myuser1;

Grant succeeded.

Elapsed: 00:00:00.01
12:18:30 SQL> connect myuser1/mypassword1
Connected.
12:18:39 SQL> connect system
Enter password:
Connected.
12:18:51 SQL> alter user myuser1 password expire;

User altered.

Elapsed: 00:00:00.00
12:19:05 SQL> connect myuser1/mypassword1
ERROR:
ORA-28001: the password has expired


Changing password for myuser1
New password:
Retype new password:
Password changed
Connected.
12:19:16 SQL> connect myuser1/mypassword1
ERROR:
ORA-01017: invalid username/password; logon denied


Warning: You are no longer connected to ORACLE.
12:19:21 SQL> connect system
Enter password:
Connected.
12:19:34 SQL> alter user myuser1 identified by mypassword1;

User altered.

Elapsed: 00:00:00.01
12:19:49 SQL> alter user myuser1 identified by mypassword1 password expire;

User altered.

Elapsed: 00:00:00.01
12:20:26 SQL> select username, password from dba_users where username = 'MYUSER1';

USERNAME                       PASSWORD
------------------------------ ------------------------------
MYUSER1                        66856982BE5CD23F

Elapsed: 00:00:00.01
12:20:36 SQL> alter user myuser1 identified by values '66856982BE5CD23F' ;

User altered.

Elapsed: 00:00:00.01
12:21:01 SQL> connect myuser1/mypassword1
Connected.
12:21:13 SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

15

Пожалуйста, найдите ниже 4 запроса и выполните эти запросы из системной базы данных.

//For seeing Full user details
SELECT profile FROM dba_users WHERE username = 'SYSTEM';

//This query is used to change the password life time to unlimited
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 

//This query is used to chagne the default password.
alter user SYSTEM identified by "system";

1
Довольно легко и хорошо объяснено.
С. Майол

5

Сотрудник, использующий Toad, увидел указанную учетную запись, как показано в Обозревателях схем в разделе «Пользователи».

Нам удалось, щелкнув правой кнопкой мыши разблокировать пользователя . В диалоговом окне «Изменить пользователя» мы повторно ввели старый пароль и сняли флажок «Пароль заблокирован».


3

Вам нужно изменить пароль еще раз, чтобы новый лимит вступил в силу.


Я хочу сохранить тот же пароль
bernd_k

1
Ответ от REW соответствует этому дополнительному требованию, если у вас нет профиля, предотвращающего повторное использование пароля. Если вы используете 11g или более позднюю версию, хеш пароля отсутствует в dba_users, поэтому вам нужно получить его из sys.user $. См laurentschneider.com/wordpress/2007/08/...
Leigh Риффел

1

Вы должны изменить учетную запись пользователя. Сначала подключитесь к своей sysучетной записи, и оттуда вы можете выполнить указанный ниже шаг:

alter user practice identified by password;

это решит вашу проблему ...


1

Я знаю, что это старый, но для тех, кто использует Oracle SQL Developer, выполните следующие действия:

  • Используйте другого пользователя для входа в любое соединение с базой данных, которое вы используете, вы можете использовать имя пользователя по умолчанию «system» или «sys» с любым паролем, который вы там получили.

  • Откройте дерево подключений, найдите узел «Другие пользователи» и откройте это так:

введите описание изображения здесь

  • Найдите свое имя пользователя в дочерних заметках в разделе «Другие пользователи» и щелкните правой кнопкой мыши, чтобы отредактировать пользователя следующим образом:

введите описание изображения здесь

  • Введите новый пароль и Снять срок действия пароля, затем примените. Нажмите правую кнопку мыши еще раз, чтобы увидеть, были ли изменены настройки, если хотите.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.