Bonjour les admins,

 

Il arrive parfois que des utilisateurs ne puissent pas se connecter à leur base chérie.

La cause est bien souvent que le compte a été verrouillé.

Voici donc quelques requêtes SQL utiles dans ce cas (à exécuter avec le compte SYS AS SYSDBA) :

Lister les stratégies de mot de passe Oracle :

SQL> select * from dba_profiles where profile = 'DEFAULT' and RESOURCE_TYPE = 'PASSWORD';

Listes les comptes verrouillés :

SQL> select USERNAME,ACCOUNT_STATUS from dba_users where ACCOUNT_STATUS='LOCKED';

Deverrouiller un compte (exemple compte TOTO) :

SQL> alter user TOTO account unlock;

Lister les echecs de connexion :

SQL> SELECT t2.*, t1.*
FROM dba_audit_session t2, dba_audit_session t1
WHERE t2.returncode = 28000
AND t1.timestamp < t2.timestamp
AND t1.returncode = 1017
AND t1.username = t2.username;

Lister les echecs de connexion depuis 10 jours avec plus d'informations :

SELECT
  TO_CHAR(TIMESTAMP,'MM/DD HH24:MI') TIMESTAMP,
  SUBSTR(OS_USERNAME,1,20) OS_USERNAME,
  SUBSTR(USERNAME,1,20) USERNAME,
  SUBSTR(TERMINAL,1,20) TERMINAL,
  ACTION_NAME,
  RETURNCODE
FROM
  SYS.DBA_AUDIT_SESSION
WHERE
  RETURNCODE='1017'
  AND TIMESTAMP BETWEEN SYSDATE-10 AND SYSDATE
ORDER BY
  TIMESTAMP DESC;