Comment obtenir une liste des comptes verrouillés / vérifier que le compte est verrouillé?

16

Je peux utiliser la déclaration suivante pour déverrouiller un compte:

ALTER USER username ACCOUNT UNLOCK

Mais quelle déclaration puis-je utiliser pour vérifier que le compte est actuellement verrouillé?

Mikhail
la source

Réponses:

22

Comme le montre déjà la réponse de Dba , les informations sur l'état du compte sont accessibles via la dba_usersvue. Connecté à un utilisateur disposant des autorisations appropriées, il peut également être utilisé pour identifier les "utilisateurs inactifs":

SELECT username, account_status, created, lock_date, expiry_date
  FROM dba_users
 WHERE account_status != 'OPEN';

vous indique pour chaque compte verrouillé / expiré quand il a été créé, dans quel état il est (verrouillé, expiré, expiré et verrouillé, expiré (grâce)), et à quelle heure il a été verrouillé ou expiré. Utile pour un "nettoyage"; mais vous devez tenir compte du fait que certains comptes peuvent simplement être des "détenteurs de données" qui ne sont jamais connectés pour des raisons de sécurité, mais qui sont requis soit par Oracle lui-même, soit par vos applications. Un bon exemple pour ceux-ci est le compte système OUTLN. Veillez donc à ne "nettoyer" que les comptes dont vous savez qu'ils ne sont pas utilisés / nécessaires :)

Izzy
la source
5

Utilisez DBA_USERSAffichage.

SELECT username, account_status
FROM dba_users;
Dba
la source
1

Vous pouvez l'interroger en spécifiant également le nom d'utilisateur:

select username, account_status
from dba_users
where username = 'your_user_name';
Mohammed Nouh
la source