Envoyé par
dgi77
J'ai déjà utilisé une solution pour faire cela, qui consistait à faire un trigger AFTER LOGON et un trigger BEFORE LOGOFF.
Dans chaque trigger, tu fais un INSERT du user et du sysdate dans une table de trace.
Ne reste ensuite plus qu'à calculer le différentiel entre les 2
On peut aussi obtenir le même résultat grâce à l'audit.
Activation de l'audit au niveau de l'instance (nécessite le redémarrage de la base) :
ALTER SYSTEM SET AUDIT_TRAIL=DB SCOPE=SPFILE;
Mise sous surveillance des connexions :
Consultation des résultats :
1 2 3 4 5
| ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/YYYY HH24:MI:SS';
SELECT OS_USERNAME, USERNAME, TIMESTAMP "CONNEXION", LOGOFF_TIME "DECONNEXION"
FROM DBA_AUDIT_SESSION
WHERE ACTION_NAME='LOGOFF'; |
1 2 3 4
| OS_USERNAME USERNAME CONNEXION DECONNEXION
------------------------------ ------------------------------ ------------------- -------------------
ORA10TEST\admin SCOTT 13/09/2007 18:31:38 13/09/2007 18:32:46
ORA10TEST\admin SCOTT 13/09/2007 18:40:38 13/09/2007 18:57:53 |
Partager