Comment se débarrasser du message ORA-28002, le mot de passe expirera dans les 6 jours?

18

Un utilisateur reçoit un ORA-28002 indiquant que le mot de passe expirera dans les six jours. J'ai couru ce qui suit:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 

Mais lorsque j'essaie de me connecter en tant qu'utilisateur, le message est toujours là. Exécution de ceci:

select * from dba_profiles where RESOURCE_NAME LIKE 'PASSWORD_LIFE_TIME';

montre que les valeurs ont vraiment été modifiées en UNLIMITED.

bernd_k
la source

Réponses:

17

Le mot de passe a été marqué comme «EXPIRED» ou marqué par un «EXPIRY_DATE» dans dba_users. Vous devrez le changer. Vous pouvez le redéfinir sur le même mot de passe. Le moyen le plus simple serait de définir le mot de passe "par valeurs". Cela contourne généralement la vérification de l'historique.

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>

Le format de ceci est "alter user USER identifié par les valeurs '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
REW
la source
15

Veuillez trouver les 4 requêtes ci-dessous et exécutez ces requêtes à partir de la base de données système.

//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";
user2645333
la source
1
Assez facile et bien expliqué.
S. Mayol
5

Un collègue utilisant Toad a vu le compte indiqué comme affiché dans les navigateurs de schéma sous Utilisateurs.

Nous avons réussi en cliquant avec le bouton droit sur déverrouiller l'utilisateur . Dans la boîte de dialogue Modifier l'utilisateur, nous avons ressaisi l'ancien mot de passe et décoché la case Le mot de passe est verrouillé.

bernd_k
la source
3

Vous devez modifier à nouveau le mot de passe pour que la nouvelle limite prenne effet.

Leigh Riffel
la source
Je veux garder le même mot de passe
bernd_k
1
La réponse de REW répond à cette exigence supplémentaire en supposant que vous ne disposez pas d'un profil empêchant la réutilisation du mot de passe. Si vous utilisez la version 11g ou ultérieure, le hachage du mot de passe n'est pas dans dba_users, vous devrez donc l'obtenir auprès de sys.user $. Voir laurentschneider.com/wordpress/2007/08/…
Leigh Riffel
1

Vous devez modifier le compte utilisateur. Connectez-vous d'abord à votre syscompte et à partir de là, vous pouvez effectuer l'étape mentionnée ci-dessous:

alter user practice identified by password;

cela résoudra votre problème ...

laltu banerjee
la source
1

Je sais que cela est ancien, mais pour ceux qui utilisent Oracle SQL Developer, procédez comme suit:

  • Utilisez un autre utilisateur pour vous connecter à n'importe quelle connexion à votre base de données, vous pouvez utiliser le nom d'utilisateur par défaut "system" ou "sys" avec le mot de passe que vous avez obtenu.

  • Ouvrez l'arborescence des connexions et trouvez le nœud "Autres utilisateurs" et ouvrez-le comme ceci:

entrez la description de l'image ici

  • Trouvez votre nom d'utilisateur dans les notes enfant sous "Autres utilisateurs" et faites un clic droit pour modifier l'utilisateur comme ceci:

entrez la description de l'image ici

  • Saisissez votre nouveau mot de passe et Annuler la vérification du mot de passe, puis appliquez. Cliquez de nouveau avec le bouton droit sur modifier l'utilisateur pour voir si les paramètres ont été modifiés si vous le souhaitez.
Saad A
la source