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.
Le mot de passe a été marqué comme "EXPIRED" ou marqué par "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
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";
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 faisant un clic droit 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é.
Vous devez modifier à nouveau le mot de passe pour que la nouvelle limite prenne effet.
Vous devez modifier le compte utilisateur. Connectez-vous d'abord à votre compte sys
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 ...
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 à la base de données que vous avez, vous pouvez utiliser le nom d'utilisateur par défaut "système" 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: