3
votes

Comment tuer automatiquement les sessions actives?

Je souhaite supprimer automatiquement les sessions lorsque l'heure de début est supérieure à 1 heure.

Comment puis-je le faire?


3 commentaires

Voulez-vous supprimer toutes les sessions? Ou juste un groupe d'utilisateurs particulier? Par exemple, vous ne voulez probablement pas tuer les sessions connectées en tant que SYS ou agents Oracle similaires?


J'ai un utilisateur qui connecte Apache, et je veux tuer ces sessions quand j'ai travaillé plus d'une heure


Vous devez mentionner si vous utilisez une connexion directe à la base de données ou un pool de connexions . Ceci est très pertinent pour la gestion du délai de connexion.


3 Réponses :


0
votes

Comment tuer une session?

SELECT s.SID,
       s.SERIAL#
  FROM v$session s
 WHERE s.LOGON_TIME < (SYSDATE - (1 / 24))

Comment afficher toutes les "anciennes" sessions?

ALTER SYSTEM KILL SESSION 'sid,serial#';


1 commentaires

Ne répond pas à l'exigence automatiquement



7
votes

Vous pouvez simplement définir un délai d'inactivité ou un délai de connexion dans un profil, et attribuer ce profil aux utilisateurs selon les besoins.

Depuis la documentation CREATE PROFILE :

Si un utilisateur dépasse la limite de ressources de session CONNECT_TIME ou IDLE_TIME , la base de données annule la transaction en cours et met fin à la session. Lorsque le processus utilisateur émet ensuite un appel, la base de données renvoie une erreur.

[...]

CONNECT_TIME : spécifiez le temps total écoulé pour une session, exprimé en minutes.

IDLE_TIME : spécifiez les périodes autorisées d'inactivité continue pendant une session, exprimées en minutes. Les requêtes de longue durée et autres opérations ne sont pas soumises à cette limite.


0 commentaires

5
votes

Vous configurez un profil et l'attribuez à l'utilisateur en question

voici un exemple:

alter system set resource_limit=true scope=both;

create profile restrictive limit
   connect_time 60
   sessions_per_user 2
   ldle_time 30;

ALTER USER scott PROFILE restrictive;


1 commentaires

Désolé, une faute de frappe: l dle_time -> i dle_time