Se la scadenza di una password utente si verifica nel mezzo di una connessione (sessione) già stabilita, non terminerà una sessione utente - la sessione non verrà chiusa automaticamente. L'utente potrà procedere e richiedere (SQL*PLUS o altri strumenti) di modificare la propria password al primo tentativo di accesso dopo la scadenza. Che il comportamento giusto. Consenti a un utente di completare ciò che ha già iniziato. Se riesci a chiudere una connessione uccidendo una sessione utente subito dopo la scadenza, probabilmente non lo farai pulito e il lavoro dell'utente andrà perso.
Modifica
Prima di tutto definiamo sessione e connessione. La sessione è un'entità logica e la connessione è fisica. E una connessione può avere da 0 a n sessioni stabilite su di essa (puoi testarla usando sql*plus CLI e informazioni da v$process
Visualizza). Pertanto la scadenza della password è più legata alla sessione dell'utente che alla connessione e quando un utente si disconnette, la sua sessione cessa di esistere, ma la connessione può ancora essere stabilita e chiusa quando un'applicazione client viene chiusa.
Si è possibile. se sei assolutamente sicuro che un utente o un'applicazione abbia terminato il proprio lavoro e semplicemente hai dimenticato di chiudere una sessione, puoi usare alter system kill session <<SID>>, <<Serial_Number>>
per uccidere(devi essere concesso alter system privilege
) la/le sessione/i.
Puoi creare un profilo
con IDLE_TIME
opzione specificata.
create profile <<Profile_name>> limit idle_time <<num_of_minutes>>
e assegnarlo a un utente. Quando il tempo di inattività di una sessione - tempo in cui una sessione non sta effettuando chiamate SQL supera <<num_of_minutes>>
Oracle annullerà la transazione corrente e terminerà quella sessione.
Puoi anche configurare la terminazione di una connessione che non è più in uso impostando SQLNET.EXPIRE_TIME
parametro
, in pochi minuti, in sqlnet.ora
file.