web-dev-qa-db-fra.com

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

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é?

18
Mikhail

Comme réponse de Dba le montre déjà, les informations sur l'état du compte sont accessibles via le dba_users vue. Connecté à un utilisateur disposant des autorisations appropriées, cela 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 :)

24
Izzy

Utilisation DBA_USERS Vue.

SELECT username, account_status
FROM dba_users;
5
Dba

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

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