Como se livrar da mensagem ORA-28002, a senha expirará em 6 dias?


18

Eu tenho um usuário recebendo um ORA-28002 indicando que a senha expirará dentro de seis dias. Eu executei o seguinte:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 

Mas quando tento fazer login como usuário, a mensagem ainda está lá. Executando isso:

select * from dba_profiles where RESOURCE_NAME LIKE 'PASSWORD_LIFE_TIME';

mostra que os valores foram realmente alterados para ILIMITADO.

Respostas:


17

A senha foi marcada como 'EXPIRED' ou com 'EXPIRY_DATE' em dba_users. Você terá que mudar isso. Você pode configurá-lo novamente para a mesma senha. A maneira mais fácil seria definir a senha "por valores". Isso geralmente ignora a verificação do histórico.

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>

O formato disso é "alterar usuário USER identificado pelos valores 'hash de 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

Encontre as 4 consultas abaixo e execute-as no banco de dados do sistema.

//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";

11
Muito fácil e bem explicado.
Mayol

5

Um colega de trabalho usando o Toad viu a conta indicada como visualizada nos Navegadores de Esquema em Usuários.

Conseguimos clicar com o botão direito do mouse em desbloquear usuário . Na caixa de diálogo Alterar usuário, redigitamos a senha antiga e desmarcamos a caixa de seleção A senha está bloqueada.


3

Você precisa alterar a senha novamente para que o novo limite entre em vigor.


Eu quero manter a mesma senha
bernd_k 17/01

11
A resposta do REW atende a esse requisito adicional, supondo que você não tenha um perfil que impeça a reutilização da senha. Se você estiver no 11g ou posterior, o hash da senha não está no dba_users, portanto, será necessário obtê-lo no sys.user $. Veja laurentschneider.com/wordpress/2007/08/…
Leigh Riffel

1

Você deve alterar a conta do usuário. Primeiro, conecte-se à sua sysconta e, a partir daí, você poderá executar a etapa mencionada abaixo:

alter user practice identified by password;

isso resolverá seu problema ...


1

Sei que isso é antigo, mas para quem usa o Oracle SQL Developer, siga estas etapas:

  • Use outro usuário para fazer login em qualquer conexão de banco de dados que você tenha; você pode usar o nome de usuário "sistema" ou "sys" padrão com a senha que tiver lá.

  • Abra a árvore de conexões, localize o nó "Outros usuários" e abra assim:

insira a descrição da imagem aqui

  • Encontre seu nome de usuário nas notas filho em "Outros usuários" e clique com o botão direito do mouse para editar o usuário da seguinte forma:

insira a descrição da imagem aqui

  • Digite sua nova senha, desmarque a senha expirada e aplique-a. Clique com o botão direito do mouse em editar usuário novamente para ver se as configurações foram alteradas, se desejar.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.